我有一个闪存 USB 驱动器,到目前为止它运行良好。最近我使用 dd 向其录制了 iso。现在我想删除它。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
.......
sdb 8:16 1 14.6G 0 disk
└─sdb1 8:17 1 14.5G 0 part /media/alex/ARCH_201404
sr0 11:0 1 1024M 0 rom
$ mount
/dev/sdb1 on /media/alex/ARCH_201404 type iso9660 (ro,nosuid,nodev,uid=1000,gid=1000,iocharset=utf8,mode=0400,dmode=0500,uhelper=udisks2)
当我这样做时
$ sudo dd ibs=4096 count=1 if=/dev/zero of=/dev/sdb1
1+0 records in
8+0 records out
4096 bytes (4.1 kB) copied, 0.00053675 s, 7.6 MB/s
它似乎成功了,但当我探索 USB 闪存时,所有文件仍然存在。什么时候这个:
sudo rm -r /media/alex/ARCH_201404/*
我收到错误:
..................
rm: cannot remove ‘/media/alex/ARCH_201404/loader/entries/uefi-shell-v1-x86_64.conf’: Read-only file system
rm: cannot remove ‘/media/alex/ARCH_201404/loader/entries/uefi-shell-v2-x86_64.conf’: Read-only file system
rm: cannot remove ‘/media/alex/ARCH_201404/loader/loader.conf’: Read-only file system
.....................
我能做什么呢?
答案1
您仅将分区的前 4kb 归零。通常,所有文件系统都会在其分区的开头保留一些未使用的块,以便为可能安装在分区本身上的引导加载程序提供空间。我认为至少有 16 个块始终保持未使用状态。
您使用 复制了dd
ISO 9660 类型的文件系统,因此您拥有 2048 字节的块。
ISO 9660 为引导加载程序保留了大约 32kb,如下所述:http://wiki.osdev.org/ISO_9660#System_Area
所以,为了真正删除分区的内容,你可能需要删除至少前1Mb。
答案2
您可以尝试重新安装带有读写标志的驱动器。像下面这样的东西应该有效。
# mount -o remount,rw /dev/sdb1 /media/alex/ARCH_201404