格式化为“Linux Live CD”的USB闪存驱动器在重新分区后保留CD-ROM名称教程
我有一个USB闪存驱动器,我以前用作Linux Fedora的安装介质.
棒上还有“Fedora Live USB”安装文件.当我将它插入我的olde laptoppe时,它在KDE dolphin中显示为名为“Fedora-Live-KDE-x86\_64-22-3”的磁盘.很公平.
因此,我使用fdisk销毁其上的所有分区,创建新分区,在所述分区上设置ext4文件系统.
我插入闪存驱动器.我在KDE dolphin中看起来像“Fedora-Live-KDE-x86\_64-22-3”.
未开发的闪存时间!
这个名字来自哪里?感觉它不是来自USB闪存驱动器,但下面的factoid(3)表明它实际上.
该名称来自何处以及如何更改?
以下是关于名称来源的一些研究,结论是它显然来自磁盘上留下的ISO-9660数据.但Linux的这种理智行为如何呢?
▶e2label / dev / sdd1没有显示任何内容:文件系统没有标签
▶blkid / dev / sdd1显示
/ dev / sdd1:UUID =“10aab422-4212-45c8-9f99-35e5eb719154”TYPE =“ext4”PARTUUID =“5c4a815c-01”
▶在另一台机器上使用闪存驱动器也会显示名称“Fedora-Live-KDE-x86\_64-22-3”.
▶通过查看/ dev下的文件系统,可以转储“标签”(无论是那些):
ls -l / dev / disk / by-label /
这显示了符号链接
Fedora-Live-KDE-x86\_64-22-3 – > ../../sdb
请注意,符号链接指向设备,而不是分区.所以这不是文件系统标签,而是像“磁盘标签”.
▶e2label为空时可获得的原始“文件系统标签”,我们设置它然后看看是什么:
# e2label /dev/sdb1 "Scooby Doo"
# ls -l /dev/disk/by-label/
lrwxrwxrwx. 1 root root 9 Feb 4 23:43 Fedora-Live-KDE-x86_64-22-3 -> ../../sdb
lrwxrwxrwx. 1 root root 10 Feb 4 23:43 Scooby\x20Doo -> ../../sdb1
所以现在磁盘和文件系统/分区都有一个标签.但是,在删除/重新插入后,dolphin(或者更确切地说,Linux)现在已经确定了文件系统的“Scooby Doo”名称.那么为何不!然后我们可以使用e2label / dev / sdb1“”再次擦除标签……然后名称又回来了,但只是部分名称:“Fedora-Live-KDE-”(为什么部分?)因为它从0x9000开始读取,而完整标签位于0x8000,见下文)
▶还试图看看分手的作用.它似乎非常困惑:它认为8GiB棒有512字节块实际上是一个32GiB棒,有2048字节块并检测到Apple分区,而fdisk非常满意找到一个8GiB Linux分区. Curioser和curioser.
(parted) print
Warning: The driver descriptor says the physical block size is 2048
bytes, but Linux says it is 512 bytes.
Ignore/Cancel? i
Model: Generic USB Flash Disk (scsi)
Disk /dev/sdb: 32.2GB
Sector size (logical/physical): 2048B/512B
Partition Table: mac
Disk Flags:
Number Start End Size File system Name Flags
1 2048B 10.2kB 8192B Apple
2 88.1kB 5278kB 5190kB EFI
3 5319kB 26.1MB 20.8MB EFI
这可能不是完全混淆,因为在棍子上我们发现:
▶额外的怪异:重新格式化的USB记忆棒似乎是不可写的,但对于非root用户来说是可穿越的.写作为root工作虽然.但这只是一个侧面评论.
▶使用okteta获取diskdump会在刚刚超过0x8000的位置显示磁盘名称字符串,即在块64中(块为512字节大小):
这显然源于LiveCD结构.
▶进一步显示该名称可能再次以UTF-16格式过去0x9000,版本后缀可能因为该字段具有恒定大小而被删除:
▶POKE的时间,看看会发生什么.我们修改0x8000标记处的字符串:
我们还修改了0x9000标记处的字符串:
然后将块写回到棒上(因为我们一直在修改使用dd获得的文件),同步,同步和弹出.
然后重新插入棒.在这种情况下,Linux以0x9000的字符串结束.
[root@elf ~]# ls -l /dev/disk/by-label/
total 0
lrwxrwxrwx. 1 root root 10 Feb 9 22:09 DellUtility -> ../../sda1
lrwxrwxrwx. 1 root root 10 Feb 9 23:20 MOTHRA-Dead-KDE- -> ../../sdb1
lrwxrwxrwx. 1 root root 10 Feb 9 22:09 OS -> ../../sda2
lrwxrwxrwx. 1 root root 10 Feb 9 22:09 RECOVERY -> ../../sda4
Dolphin显示/ dev / disk / by-label的内容:
所以,我们知道字符串的来源.能够根据CD-ROM结构更改它似乎没有用,而我们已经在USB磁盘上放置了标准分区方案.为什么Linux将这两个结构混为一谈?
解决方法:
这是卷标.这是mkfs.ext4中的-L标志,或者我认为是mkfs.vfat中的-n,依此类推.
您可以通过使用e2label向其传递新标签或使用dd完全删除它来更改它.