答案1
需要注意的是,写入/dev/null
块设备不会有任何作用。块设备的意思/dev/sdc
不是/dev/sdc1
sdc1 指的是第一个分区,而不是整个设备。
您想要使用:
/dev/zero
或者:
/dev/urandom
答案2
Cygwin 用途遵循设备映射对于类似硬盘的设备:
POSIX device name Internal NT device name
/dev/sda \device\harddisk0\partition0 (whole disk)
/dev/sda1 \device\harddisk0\partition1 (first partition)
...
/dev/sda15 \device\harddisk0\partition15 (fifteenth partition)
/dev/sdb \device\harddisk1\partition0
/dev/sdb1 \device\harddisk1\partition1
[up to]
/dev/sddx \device\harddisk127\partition0
/dev/sddx1 \device\harddisk127\partition1
...
/dev/sddx15 \device\harddisk127\partition15
您可以在管理控制台的磁盘管理中看到 NT 设备名称。
也可使用/dev/zero
而不是/dev/null
作为输入。
答案3
假设 Cygwin 具有与 Unix/Linux 安装相同的核心命令,您可以使用df
—它会告诉您设备上有多少可用空间(磁盘可用空间),还会为您提供良好的文件系统数据——您可以在这样的情况下使用。
例如,以下是输出df
从我的 Mac OS X 终端:
Filesystem 512-blocks Used Available Capacity iused ifree %iused Mounted on
/dev/disk0s2 975093952 135358704 839223248 14% 16983836 104902906 14% /
devfs 381 381 0 100% 660 0 100% /dev
map -hosts 0 0 0 100% 0 0 100% /net
map auto_home 0 0 0 100% 0 0 100% /home
/dev/disk2s2 3906357344 2097411968 1808945376 54% 262176494 226118172 54% /Volumes/Moe
/dev/disk1s2 235154168 118616008 116538160 51% 14826999 14567270 50% /Volumes/Larry
/dev/disk1s3 3670941032 2100018304 1570922728 58% 262502286 196365341 57% /Volumes/Curly
请注意最后三个条目,它们显示了挂载点以及您连接到的文件系统。假设我想擦除/Volumes/Curly
它,并在某个时候用来自名为 的地方的数据替换它/Volumes/Shemp
,我会擦除驱动器上的所有数据,然后运行此dd
命令:
dd if=/dev/zero of=/dev/disk1s3/wipe_file.txt
为了让大家了解该命令的作用,if
它指示输入文件是什么(获取它,if
),并of
指示输出文件(类似地...获取它,of
),就是这样。我使用 而/dev/zero
不是/dev/null
因为 是/dev/null
您不需要的数据的输入目的地,而是字符/dev/zero
流的输出源。0
所以当你运行它时dd
命令的内容/dev/zero
(只是无休止的0
字符流)将被复制到wipe_file.txt
。/dev/disk1s3/
这意味着将创建一个名为 的新文件wipe_file.txt
,该文件会不断增长,直到填满 的全部容量/dev/disk1s3/
。
但是根据你对数据的偏执程度,你也可以改成if
这样random
:
dd if=/dev/random of=/dev/disk1s3/wipe_file.txt
使用zero
将明确地仅填充wipe_file.txt
字符0
,而random
将用随机字符填充文件。请注意,用随机数据填充文件将比用空字符填充文件需要更多的计算能力,因此该random
方法将花费更长的时间。但是,如果您担心窥探者恢复数据,那么这可能是确保销毁驱动器上已删除数据的最佳方法。
答案4
对我来说,驱动器号映射最可靠的来源是 diskpart、blkid 和 /proc/partitions 的组合
user@system:~$ diskpart
Microsoft DiskPart-Version 10.0.19041.964
Copyright (C) Microsoft Corporation.
Auf Computer: SYSTEM
DISKPART> list disk
Datenträger ### Status Größe Frei Dyn GPT
--------------- ------------- ------- ------- --- ---
Datenträger 0 Online 1863 GB 1024 KB *
Datenträger 1 Online 9 TB 1024 KB *
Datenträger 2 Kein Medium 0 B 0 B
Datenträger 3 Kein Medium 0 B 0 B
Datenträger 4 Kein Medium 0 B 0 B
Datenträger 5 Kein Medium 0 B 0 B
Datenträger 6 Kein Medium 0 B 0 B
Datenträger 7 Online 1863 GB 1863 GB
DISKPART> select disk 1
Datenträger 1 ist jetzt der gewählte Datenträger.
DISKPART> list part
Partition ### Typ Größe Offset
------------- ---------------- ------- -------
Partition 1 Reserviert 15 MB 17 KB
Partition 2 Primär 9 TB 16 MB
DISKPART>
user@system:~$ cat /proc/partitions
major minor #blocks name win-mounts
8 0 1953514584 sda
8 1 113664 sda1
8 2 16384 sda2
8 3 1952839766 sda3 C:\
8 4 541696 sda4
8 16 9766436864 sdb
8 17 16367 sdb1
8 18 9766418432 sdb2 D:\
8 32 0 sdc
8 48 0 sdd
8 64 0 sde
8 80 0 sdf
8 96 0 sdg
8 112 1953514584 sdh
8 128 8388608 sdi
8 129 8385536 sdi1
user@system:~$ /sbin/blkid.exe
/dev/sda1: LABEL="SYSTEM" UUID="2A05-C09D" TYPE="vfat"
/dev/sda3: LABEL="Windows" UUID="087A36A47A368E86" TYPE="ntfs"
/dev/sda4: UUID="A080B84E80B82CA2" TYPE="ntfs"
/dev/sdb2: LABEL="Data" UUID="1864245164243442" TYPE="ntfs"
/dev/sdi1: LABEL="PortableBaseLayer" UUID="6278D53678D50A25" TYPE="ntfs"
虽然我当然更喜欢包含真实驱动器名称(Seagate ST2000DM001 或类似名称)的设备列表,但我可以通过检查前面命令的输出轻松找出驱动器映射。一定要仔细检查,没有什么比鞭打 C:-Drive 更有趣的了。