该shred
(命令coreutils
8.23),从开始到结束这是完全正常的使用情况下,它是专为(其中都涉及到写东西完整的设备)会覆盖配置数据的设备。
在我的情况下,只需对设备的x个前字节和y个后字节进行处理shred
就足以对整个设备起作用,但是我似乎找不到避免指定显式值(设备大小等)的好的解决方案)。我可以使用来从随机源写入设备的计算部分dd
,但随后我必须获取设备的大小,与MiB和MB挣扎,等等。也许有些舒适感shred
(或者我只是想念些东西)。
通常,与分区相关的信息(gpt,msdos分区表和备份)位于设备的开头和结尾。
您确定您真正想要的不是“ wipefs
-从设备擦除文件系统签名”吗?
dd
使用起来并不难,尤其是从gparted
或获取正确的数字fdisk
,请参见下文。
整个磁盘方法有效,如中所述dd if=/dev/zero of=/dev/sdx
。可能bs=1M
会增加速度。或替换/dev/zero
为/ dev / urandom`以获取更多随机数据。就像在“ ArchWiki的安全擦除磁盘”中一样。
对于一个分区号“ n”,又名“ sdxn”,就可以做到 dd if=/dev/zero of=/dev/sdxn
对于“第一个” n MB,您可以 dd if=/dev/zero of=/dev/sdx bs=1M count=n
对于“开始”和“结束”,您可以找出驱动器的扇区大小和总扇区gparted
,在“查看”->“设备信息”下可以很容易地告诉您,甚至可以告诉您分区的开始和结束扇区在哪里。parted
&fdisk
(对于MBR)也应该如此。
然后,使用一些数学运算找出要擦除的位置。
小小(512b)精确方法-查找要擦除的扇区。如果您的驱动器具有512字节的扇区,并且具有251658240的扇区(即120GB,= 251658240扇区* 512字节/ 1024转换为k / 1024到M / 1024到G)...
dd if=/dev/zero of=/dev/sdx bs=512 seek=249561088 count=2097152
你可以转换的bs
,seek
与count
使用M(M = 1024 * 1024)来代替,如果是在一个时间过慢会512B。磁盘始终从0开始,但以M开头251658240 * 512/1024/1024 = 122880。
dd if=/dev/zero of=/dev/sdx bs=1M seek=121856 count=1024
一次进行一次粗略的估计,可以在超出“结束”的位置进行写入而不会造成损坏(磁盘的最末端,不擦除中间分区)的情况下正常工作。一次尝试1G(G = 1024 * 1024 * 1024字节)。看到man dd
更多信息,它了解K,M,G等。
dd if=/dev/zero of=/dev/sdx bs=1G seek=119
省略count
了继续到设备末尾的操作。或者,对于将“随机”数据写入整个分区/驱动器的一种可能更快的方法,可以使用dm-crypt:
首先,在要加密的分区(sdXY)或整个磁盘(sdX)上创建一个临时的加密容器,例如,使用默认参数
# cryptsetup open --type plain /dev/sdXY container
二,检查是否存在
# fdisk -l Disk /dev/mapper/container: 1000 MB, 1000277504 bytes ... Disk /dev/mapper/container does not contain a valid partition table
最后,使用伪随机(加密的数据)擦除它,由于加密密码用于随机性,因此不需要使用/ dev / urandom:
# dd if=/dev/zero of=/dev/mapper/container dd: writing to ‘/dev/mapper/container’: No space left on device
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句