无法从 USB 驱动器中删除文件(无论是通过 dd /dev/zero 还是通过 rm -r)

无法从 USB 驱动器中删除文件(无论是通过 dd /dev/zero 还是通过 rm -r)

我有一个闪存 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 个块始终保持未使用状态。

您使用 复制了ddISO 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

相关内容