这看起来似乎很容易,但我在格式化 USB 驱动器以使其能够以 Live 格式使用时遇到了问题。我使用过 8GB 和 16GB 的 USB 驱动器,结果相同。以下是我所做的:
- 卸载驱动器:
sudo umount /dev/sdb
- 格式化驱动器:
sudo mkfs.vfat -I /dev/sdb
- 对驱动器进行分区:
sudo fdisk /dev/sdb
,然后执行以下命令序列:n p 1 [intro] +7G a w
该过程似乎运行良好,并且存在以下消息:
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
(也尝试过+4G
,并更改为 FAT16 和 FAT32,结果相同。)
lsblk
现在显示此信息:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 238,5G 0 disk
├─sda1 8:1 0 226,6G 0 part /
├─sda2 8:2 0 1K 0 part
└─sda5 8:5 0 11,9G 0 part [SWAP]
sdb 8:16 1 14,5G 0 disk
└─sdb1 8:17 1 7G 0 part
sr0 11:0 1 1024M 0 rom
我拔出驱动器并再次插入,但什么也没发生。驱动器没有像预期的那样自动安装,当我运行 unetbootin 时它也没有显示(通常在那里我可以看到sdb
或sdb1
已经安装在新 USB 驱动器中的驱动器)。
所以,目前我不知道该怎么做。当我在尚未分区(写入sdb
)的驱动器中创建 Live 版本并尝试使用它启动时,它会说该驱动器不是可启动的。
已在此论坛和其他论坛中进行了广泛搜索(包括这),但找不到正确的信息。
答案1
您的程序是(部分):
- 格式化驱动器:
sudo mkfs.vfat -I /dev/sdb
- 对驱动器进行分区:
sudo fdisk /dev/sdb
这种做法有两个问题:
- 订单撤销-- 您需要对磁盘进行分区前您在其上创建文件系统(“格式化”)。这是因为分区保存文件系统,因此分区必须在创建文件系统之前存在。您最终得到的分区指向磁盘的某个半随机部分,而不是指向文件系统的起始位置。
- 全磁盘文件系统-- 如上所述,分区保存文件系统;但是,您在整个磁盘设备 (
/dev/sdb
) 上创建了一个文件系统,而不是在设备上的分区上创建了一个文件系统(例如/dev/sdb1
)。话虽如此,但将文件系统放在整个磁盘设备上是合法的;它只是习惯的将文件系统放入分区,这样做可以提高灵活性。可以想象,如果你省略了步骤 #3,它可能会起作用;但也有可能你想要创建的一些工具或设置会认为磁盘已分区,在这种情况下省略步骤#3会导致以后出现问题。
当您使用 GParted 时,正如 GTRONICK 所建议的那样,您可以绕过这两个问题,因为 GParted 会按照正确的顺序执行分区和文件系统创建任务,并将文件系统放在它创建的分区上。(GParted 用户界面隐藏了存在两个操作的事实,但在幕后,它们是两个不同的操作。)
答案2
只需使用gparted
,并创建一个 ms-dos 分区表。然后将其格式化为 FAT32。
该问题可能是由分区表无效、不存在或损坏引起的。