我有一个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

这可能不是完全混淆,因为在棍子上我们发现:

格式化为“Linux Live CD”的USB闪存驱动器在重新分区后保留CD-ROM名称教程

▶额外的怪异:重新格式化的USB记忆棒似乎是不可写的,但对于非root用户来说是可穿越的.写作为root工作虽然.但这只是一个侧面评论.

▶使用okteta获取diskdump会在刚刚超过0x8000的位置显示磁盘名称字符串,即在块64中(块为512字节大小):

格式化为“Linux Live CD”的USB闪存驱动器在重新分区后保留CD-ROM名称教程

这显然源于LiveCD结构.

▶进一步显示该名称可能再次以UTF-16格式过去0x9000,版本后缀可能因为该字段具有恒定大小而被删除:

格式化为“Linux Live CD”的USB闪存驱动器在重新分区后保留CD-ROM名称教程

▶POKE的时间,看看会发生什么.我们修改0x8000标记处的字符串:

格式化为“Linux Live CD”的USB闪存驱动器在重新分区后保留CD-ROM名称教程

我们还修改了0x9000标记处的字符串:

格式化为“Linux Live CD”的USB闪存驱动器在重新分区后保留CD-ROM名称教程

然后将块写回到棒上(因为我们一直在修改使用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的内容:

格式化为“Linux Live CD”的USB闪存驱动器在重新分区后保留CD-ROM名称教程

所以,我们知道字符串的来源.能够根据CD-ROM结构更改它似乎没有用,而我们已经在USB磁盘上放置了标准分区方案.为什么Linux将这两个结构混为一谈?

解决方法:

这是卷标.这是mkfs.ext4中的-L标志,或者我认为是mkfs.vfat中的-n,依此类推.

您可以通过使用e2label向其传递新标签或使用dd完全删除它来更改它.

标签: linux, iso, usb, partition, live-usb

相关文章推荐

添加新评论,含*的栏目为必填