bit*_*bit 6 linux partition kernel parted block-device
我使用parted将外部硬盘驱动器(sdc)格式化为ntfs,创建一个主分区(sdc1)。在格式化设备之前,使用命令将SystemRescueCd安装在外部硬盘驱动器上dd,以便用作可启动 USB。但是,当列出设备时lsblk -f我仍然得到格式化设备(sdc)的旧FSTYPE(iso9660)和LABEL(sysrcd-5.2.2):
NAME FSTYPE LABEL UUID MOUNTPOINT\nsda \n\xe2\x94\x9c\xe2\x94\x80sda1 ntfs System Reserved \n\xe2\x94\x9c\xe2\x94\x80sda2 ntfs \n\xe2\x94\x9c\xe2\x94\x80sda3 ntfs \n\xe2\x94\x9c\xe2\x94\x80sda4 \nsdc iso9660 sysrcd-5.2.2 \n\xe2\x94\x94\xe2\x94\x80sdc1 ntfs sysrcd-5.2.2 /run/media/user/sysrcd-5.2.2\nRun Code Online (Sandbox Code Playgroud)\n\n如图所示,lsblk -f只有分区的FSTYPEsdc1是正确的,sdc1分区的LABEL、sdc块设备的FSTYPE和LABEL都是错误的。nautilus GUI 应用程序还显示旧设备标签 (sysrcd-5.2.2)。
创建新的分区表后,建议我在将设备格式化为ntfsparted之前重新启动系统,但我决定卸载 sdc 而不是重新启动。
从原始帖子的输出lsblk -f中,我怀疑已安装的 SystemRescueCd 的签名仍然存在于外部硬盘驱动器中。所以我运行了命令wipefs /dev/sdc,它打印了有关所有分区的wipefs /dev/sdc1信息sdcsdc:
[root@fedora user]# wipefs /dev/sdc\nDEVICE OFFSET TYPE UUID LABEL\nsdc 0x8001 iso9660 sysrcd-5.2.2\nsdc 0x1fe dos \n[root@fedora user]# wipefs /dev/sdc1\nDEVICE OFFSET TYPE UUID LABEL\nsdc1 0x3 ntfs \nsdc1 0x1fe dos\nRun Code Online (Sandbox Code Playgroud)\n\n上面的打印输出确认了iso9660SystemRescueCd 创建的分区表仍然存在。lsblk使用分区表的TYPE和代替 dos(主引导记录)分区表。为了显示正确的分区表,必须删除分区表。请注意,也可用于从块(磁盘)设备中擦除分区表签名,但是LABELiso9660lsblkiso9660dddd也可以擦除其他分区表。
因为我们只想针对特定的分区表签名进行擦除,所以wipefs是首选,因为与 不同的是dd,wipefs我们不必再次重新创建分区表。该-a命令的选项wipefs会擦除设备上的所有可用签名,但-t该命令的选项wipefs与该选项一起使用时-a会将签名限制为仅擦除某种类型的分区表。下面我们擦除iso9660分区表。这-f(--force擦除块设备上的分区表签名时需要
[root@fedora user]# wipefs -a -t iso9660 -f /dev/sdc\n/dev/sdc: 5 bytes were erased at offset 0x00008001 (iso9660): 43 44 30 30 31\nRun Code Online (Sandbox Code Playgroud)\n\n擦除iso9660分区表后我们再次检查分区表,确认分区表iso9660已被擦除:
[root@fedora user]# wipefs /dev/sdc\nDEVICE OFFSET TYPE UUID LABEL\nsdc 0x1fe dos \n[root@fedora user]# wipefs /dev/sdc1\nDEVICE OFFSET TYPE UUID LABEL\nsdc1 0x3 ntfs 34435675G36Y4776 \nsdc1 0x1fe dos \nRun Code Online (Sandbox Code Playgroud)\n\n但是现在有问题的iso9660分区表已被删除,lsblk现在使用UUID分区的作为挂载点目录名称,因为之前使用的标签iso9660分区表标签不再存在:
NAME FSTYPE LABEL UUID MOUNTPOINT\nsda \n\xe2\x94\x9c\xe2\x94\x80sda1 ntfs System Reserved \n\xe2\x94\x9c\xe2\x94\x80sda2 ntfs \n\xe2\x94\x9c\xe2\x94\x80sda3 ntfs \n\xe2\x94\x9c\xe2\x94\x80sda4 \nsdc \n\xe2\x94\x94\xe2\x94\x80sdc1 ntfs 34435675G36Y4776 /run/media/user/34435675G36Y4776\nRun Code Online (Sandbox Code Playgroud)\n\n我们可以检查目录中哪些卷(即分区)有标签/dev/disk/by-label,该目录列出了所有有标签的分区:
[root@fedora user]# ls -l /dev/disk/by-label\ntotal 0\nlrwxrwxrwx. 1 root root 10 Apr 30 19:47 \'System\\x20Reserved\' -> ../../sda1\nRun Code Online (Sandbox Code Playgroud)\n\n该ntfs分区上的文件系统sda1是唯一有标签的分区
为了使挂载点的目录名称更易于阅读,我们更改了标签ntfs分区上文件系统的标签sdc1从无(空字符串)更改为“新标签”。更改文件系统标签的命令取决于文件系统1 2。对于ntfs文件系统,更改标签是使用以下命令完成的ntfslabel:
ntfslabel /dev/sdc1 "new-label"
ntfs现在,更改文件系统上的标签后,lsblk使用"new-label"作为挂载点目录的名称:
NAME FSTYPE LABEL UUID MOUNTPOINT\nsda \n\xe2\x94\x9c\xe2\x94\x80sda1 ntfs System Reserved \n\xe2\x94\x9c\xe2\x94\x80sda2 ntfs \n\xe2\x94\x9c\xe2\x94\x80sda3 ntfs \n\xe2\x94\x9c\xe2\x94\x80sda4 \nsdc \n\xe2\x94\x94\xe2\x94\x80sdc1 ntfs new-label /run/media/user/new-label\nRun Code Online (Sandbox Code Playgroud)\n\n注意:此外,该设备sdc不再像所有其他块设备(例如 sda)一样具有文件系统类型和标签。只有分区才应具有文件系统类型,因为文件系统位于分区而不是设备上,并且只有分区应具有标签,因为列标题LABEL是文件系统标签而不是设备标签。