我有一个带有磁盘标签和文件系统标签的 USB。我想知道如何更改磁盘标签。
我到处都读到没有磁盘标签。我也是这么想的,但我似乎有一个。
该标签存储在哪里以及如何更改它?
#↳ lsblk -o name,mountpoint,label
sda
├─sda1 / debian-root
├─sda3 /home home
└─sda4 [SWAP]
sdd
└─sdd2 /media/user1/extra extra
sde Debian 8.10.0 amd64 1
└─sde1 /media/user1/label1 label1
#↳ ll /dev/disk/by-label/
total 0
lrwxrwxrwx 1 root root 10 Jul 23 10:32 label1 -> ../../sde1
lrwxrwxrwx 1 root root 10 Jul 16 14:43 debian-root -> ../../sda1
lrwxrwxrwx 1 root root 9 Jul 23 10:32 'Debian\x208.10.0\x20amd64\x201' -> ../../sde
lrwxrwxrwx 1 root root 10 Jul 22 11:44 extra -> ../../sdd2
lrwxrwxrwx 1 root root 10 Jul 16 14:43 home -> ../../sda3
#↳ /sbin/fdisk -l /dev/sde
Disk /dev/sde: 14.9 GiB, 16025387008 bytes, 31299584 sectors
Disk model: STORE N GO
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x4f71a989
Device Boot Start End Sectors Size Id Type
/dev/sde1 2048 31299583 31297536 14.9G c W95 FAT32 (LBA)
#↳ strings /dev/sde | head -n 7
EFI PART
Apple
Apple_partition_map
Apple_HFS
CD001
Debian 8.10.0 amd64 1
XORRISO-1.4.6 2016.09.16.133001, LIBISOBURN-1.4.6, LIBISOFS-1.4.6, LIBBURN-1.4.6
更新:我是否有多个分区表?并且,处理此问题的规则是什么?
#↳ /sbin/wipefs /dev/sde
DEVICE OFFSET TYPE UUID LABEL
sde 0x8001 iso9660 2017-12-09-22-16-00-00 Debian 8.10.0 amd64 1
sde 0x1fe dos
sde 0x200 gpt
#↳ cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 10 (buster)"
NAME="Debian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"
答案1
我猜测该驱动器之前有 ISOdd
版本。标签明确表明了这一点,并且电喷和苹果在超级块中找到的字符串也支持这一点——ISO 文件上有多个分区表,以允许在不同的系统上启动(这篇博文对于 Fedora ISO 镜像有一个很好的详细解释,对于 Debian 来说是类似的)。我认为格式化驱动器并没有正确擦除各种元数据的所有残留物,这就是为什么lsblk
现在认为它上面有一个标签。
尝试运行wipefs /dev/sde
此命令将显示元数据 (lib)blkid 在设备上看到的内容(如果存在带有标签的损坏的 iso9660,我不会感到惊讶),然后您可以选择仅删除其中一个以wipefs -o <offset>
摆脱标签。如果您的分区上有一些数据,我建议您先进行备份,以防擦除不应该发生的情况。只需dd
将一些零添加到前几个扇区也应该可以解决问题(但这也会破坏 FAT 文件系统)。
我玩了一下 Debian 8 ISO,如果我故意删除其上现有的分区表而不删除 iso9660,我会得到相同的结果:
$ lsblk /dev/loop0 -o+FSTYPE,LABEL
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS FSTYPE LABEL
loop0 7:0 0 163M 0 loop iso9660 Debian 8.10.0 arm64 1
└─loop0p1 259:4 0 162M 0 part vfat label1
label1
(我还将分区格式化为带有标签的VFAT标签1以获得与您相同的设置)
报告wipefs
原始 iso9660 和新创建的分区表:
$ sudo wipefs /dev/loop0
DEVICE OFFSET TYPE UUID LABEL
loop0 0x8001 iso9660 2017-12-10-00-50-50-00 Debian 8.10.0 arm64 1
loop0 0x1fe dos
我必须明确告诉 fdisk 不要删除现有格式--wipe never
,默认行为是在创建新分区表时删除所有内容,所以我不知道您的情况到底发生了什么,但我认为我们可以安全地说 iso9660 格式未删除的磁盘标签实际上是 iso9660 文件系统标签。
我是否有多个分区表?并且,处理此问题的规则是什么?
是的,你有。 DOS 分区表获胜,因为它是第一个。您可以fdisk --type gpt
使用忽略 DOS 分区表并允许您在稍后的偏移量处使用 GPT 来访问 GPT 。但在普通系统上,您不想处理多个分区表,我建议将驱动器擦拭干净以清除以前的所有元数据。