我制作了一个 Arch Linux ISO USB 驱动器,我正在尝试使用方向来自 Arch Linux wiki。运行后:
$ sudo dd count=1 bs=512 if=/dev/zero of=/dev/sde && sync
parted
只识别一个512字节的扇区:
$ sudo parted /dev/sde -s print
Error: /dev/sde: unrecognised disk label
Model: (file)
Disk /dev/sde: 512B
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
我无法创建新分区:
$ sudo parted /dev/sde -s mklabel msdos
$ sudo parted /dev/sde -s mkpart primary fat32 0% 100%
Error: Can't have the end before the start! (start sector=1 length=0)
Error: Unable to satisfy all constraints on the partition.
省略count
和bs
标志会dd
导致仅写入 10MB,而不是整个磁盘:
$ sudo dd if=/dev/zero of=/dev/sde && sync
dd: writing to ‘/dev/sde’: No space left on device
20481+0 records in
20480+0 records out
10485760 bytes (10 MB) copied, 0.0177212 s, 592 MB/s
$ sudo parted /dev/sde -s print
Error: /dev/sde: unrecognised disk label
Model: (file)
Disk /dev/sde: 10.5MB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags:
答案1
(正如 Gilles 所暗示的),您没有在 USB 设备上工作。
第一个线索是Model
输出
$ sudo parted /dev/sde -s print Error: /dev/sde: unrecognised disk label Model: (file) <= file! ...
您的命令:
sudo dd count=1 bs=512 if=/dev/zero of=/dev/sde && sync
/dev/sde
创建一个512 字节的零填充文件。
当您尝试通过以下方式写入整个磁盘时:
sudo dd if=/dev/zero of=/dev/sde && sync
您写入该文件,/dev/sde
直到分区上没有剩余空间为止/dev
。
dd: writing to ‘/dev/sde’: No space left on device
因为/dev
,(最有可能)实际上是 RAM 磁盘,(乌德夫),您耗尽了对该分区设置的限制...
当dd
你这样做时,在正确的磁盘上工作是极其重要的。如果您有另一个名为/dev/sde
它的磁盘,则会被删除。完全地。正如您链接的 Arch Wiki 中所述:
警告:这将不可挽回地破坏 /dev/sd 上的所有数据X。
插入USB设备后,查看例如:
lsblk
例如,如果您想了解更多信息,请参阅男人或者-h
:
lsblk -o NAME,STATE,RM,HOTPLUG,TYPE,TRAN,SIZE,PHY-SEC,LOG-SEC,FSTYPE,MODEL,VENDOR,LABEL,PARTLABEL
和:设备确实不是得到相同的dev/xxx
每次进入。它是随机的。
其他注意事项:
当你这样做时:
sudo parted /dev/sde -s mklabel msdos
您msdos
在中创建一个分区表文件 /dev/sde
。这很好用。但是当您继续执行以下操作时:
sudo parted /dev/sde -s mkpart primary fat32 0% 100%
您尝试在文件中创建主分区并收到错误:
Error: Can't have the end before the start! (start sector=1 length=0)
因为它拒绝在扇区 0 处启动分区,这里是你的分区表所在的位置MSDOS,驻留。因此它测试开始扇区 1,或偏移量 512。但由于文件只有 512 字节结尾扇区也将位于 512,您会得到“在开始之前结束”。
无论如何,FAT32 分区的最小大小为 65,527 个簇,即大约 32MB。
答案2
我解决了一个非常相似的问题:
rm /dev/sdb
插入我的 USB 驱动器(并列为 /dev/sdb)。
之后,我可以为整个驱动器创建一个新的分区表。