USB 快閃記憶體驅動器在 Linux 上顯示為兩個設備(不是!兩個分區)
插入特定的 USB 快閃記憶體驅動器時,它顯示為兩個設備,
/dev/sdb
而/dev/sdc
不是具有多個分區的單個設備。這是日誌:[142161.806978] usb 1-2: new high-speed USB device number 14 using xhci_hcd [142161.956580] usb 1-2: New USB device found, idVendor=058f, idProduct=6387, bcdDevice= 1.02 [142161.956582] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 [142161.956583] usb 1-2: SerialNumber: C3C512C9 [142161.957547] usb-storage 1-2:1.0: USB Mass Storage device detected [142161.957747] scsi host4: usb-storage 1-2:1.0 [142162.987691] scsi 4:0:0:0: Direct-Access USB 2.0 Flash Disk 8.08 PQ: 0 ANSI: 2 [142162.988189] scsi 4:0:0:1: Direct-Access USB 2.0 Flash Disk 8.09 PQ: 0 ANSI: 2 [142162.988598] sd 4:0:0:0: Attached scsi generic sg1 type 0 [142162.988866] sd 4:0:0:1: Attached scsi generic sg2 type 0 [142162.989082] sd 4:0:0:0: [sdb] 246144 512-byte logical blocks: (126 MB/120 MiB) [142162.989225] sd 4:0:0:0: [sdb] Write Protect is off [142162.989226] sd 4:0:0:0: [sdb] Mode Sense: 03 00 00 00 [142162.989364] sd 4:0:0:0: [sdb] No Caching mode page found [142162.989367] sd 4:0:0:0: [sdb] Assuming drive cache: write through [142162.989999] sd 4:0:0:1: [sdc] 5760 512-byte logical blocks: (2.95 MB/2.81 MiB) [142162.990143] sd 4:0:0:1: [sdc] Write Protect is on [142162.990146] sd 4:0:0:1: [sdc] Mode Sense: 03 00 80 00 [142162.990414] sd 4:0:0:1: [sdc] No Caching mode page found [142162.990419] sd 4:0:0:1: [sdc] Assuming drive cache: write through [142163.002004] sdb: sdb1 [142163.003225] sd 4:0:0:0: [sdb] Attached SCSI removable disk [142163.013711] sdc: sdc1 [142163.014811] sd 4:0:0:1: [sdc] Attached SCSI removable disk
正如評論中所建議的,執行結果
file -s
:# file -s /dev/sdb /dev/sdb: DOS/MBR boot sector; partition 1 : ID=0xc, start-CHS (0x0,32,33), end-CHS (0xf,75,60), startsector 2048, 243712 sectors, extended partition table (last) # file -s /dev/sdc /dev/sdc: DOS/MBR boot sector; partition 1 : ID=0x1, start-CHS (0x0,2,1), end-CHS (0x16,3,32), startsector 64, 5696 sectors, extended partition table (last)
我以前從未見過這樣的事情。除了折騰快閃記憶體驅動器並獲得另一個之外,是否有一些方法可以使其顯示為單個設備?
謝謝, 迪亞布
更新: 正如@telcoM 所建議的,我已經嘗試
u3-tool
針對設備執行:# u3-tool -D /dev/sdb u3_partition_info() failed: Device reported command failed: status 1 Data partition info: - Data partition size: 715190086144 byte(0x53425355) - Secured zone size: 49068032 byte(0x0001765c) - Unlocked: 0x00000010 - Password try: 0x20b2a600 Chip info: - Manufacturer: - Revision: USBS]v u3_read_device_property() failed for property 0x03: Header of property 0x0003 could not be read. u3_read_device_property() failed for property 0x0C: Header of property 0x000C could not be read. # u3-tool -D /dev/sdc Error opening device: Read-only file system
/dev/sdc
使via 可寫的嘗試hdparam
似乎不起作用:# hdparm -r /dev/sdc /dev/sdc: readonly = 1 (on) # hdparm -r0 /dev/sdc /dev/sdc: setting readonly to 0 (off) readonly = 0 (off) # u3-tool -D /dev/sdc Error opening device: Read-only file system
您可能有一個特殊的U3“智能”USB 快閃記憶體驅動器。這樣的快閃記憶體驅動器將自己呈現為兩個設備:一個普通的可寫磁碟設備,以及一個(通常較小且只讀的)設備,通常包含 ISO-9660 文件系統,有效地模擬 CD-ROM。
此功能針對 Microsoft Windows,對其他作業系統基本無用。您的 Linux 發行版應該有一個名為
u3-tool
或類似名稱的可選包:它包含一個同名的命令行工具,可用於更改兩個設備之間的拆分,或完全刪除第二個設備,從而允許全部容量USB 驅動器的使用方式與普通的舊 USB 快閃記憶體驅動器一樣。在這種特定情況下,第二個儲存設備只有 2.81 MiB,這讓我認為它可能被設計為用作 USB 磁片驅動器模擬器,以便在 USB 引導支持非常有限的舊系統上啟用從 USB 引導。如果這是真的,它可能早於 U3 規範,並且在沒有晶片專用硬體開發工具的情況下完全無法配置。
根據您的
file -s /dev/sdc
結果,看起來第二個設備目前包含一個正常的 MBR 分區表,但您可以只寫入一個磁片映像/dev/sdc
,dd
然後將該設備用作需要啟動的舊電腦的 USB 磁片模擬器來自 USB。[142161.956580] usb 1-2: New USB device found, idVendor=058f, idProduct=6387, bcdDevice= 1.02
根據USB ID Repository,供應商 ID 058f 屬於 Alcor Micro Corp.,產品 ID 6387 只是“快閃記憶體驅動器”,儘管也提到了具有相同 ID 的 Transcend JetFlash 快閃記憶體驅動器。它可能是各種驅動器製造商按原樣使用的 OEM USB 驅動器晶片。
它也可能是一個廉價的假冒產品,在使用 Microsoft Windows 時乍一看會顯示更大的容量,但 Linux 核心顯示更大的部分只有 126 MB 的容量。今天,一個容量為 32 GB (= 32000 MB) 的名牌 USB 記憶棒應該花費大約 8 美元,因此在這個 USB 記憶棒上花費太多精力可能不值得。