我想格式化一个记忆棒,以便在 Windows 7 和非联网的 Ubuntu 服务器(Precise)之间移动数据。
尽管我可以在两台机器上读取和写入驱动器,但我不确定我尝试过的两种方法是否正确。
如果我在 Windows 上格式化驱动器(使用磁盘管理工具),我会得到一个非常奇怪的分区列表fdisk
,但在 Linux 和 Windows 上读写似乎没问题。
和cfdisk
报告
FATAL ERROR: Bad primary partition 1: Partition begins after end-of-disk.
如果,作为有些倡导者,我用来cfdisk
创建一个类型的全盘主分区b
(或fdisk
创建一个从第二千块开始的分区),然后发出
sudo mkfs.vfat -n some_label /dev/sdf1
那么 Windows 将无法识别该文件系统(经过长时间的思考之后)。
如果我创建相同的分区,Linux 和 Windows 将很乐意读取和写入 2GB 的数据,但随后会出现问题:
sudo mkfs.vfat -I -n some_label /dev/sdf
但这会使已满的磁盘分区显示为可用空间,cfdisk
并且fdisk
Windows 不喜欢 16GB 驱动器。
我也尝试过使用parted
,但是 Windows 对我在 Linux 上创建的任何分区都不满意。
我担心,尽管驱动器似乎可以工作,但我可能会发现数据并未被忠实地传输。
我正在使用各种年份、类型和大小的 SanDisk Cruzer 驱动器。
在 Windows 上格式化的正确方法是否是忽略 cfdisk 和 fdisk 存在的问题,或者是否有另一种正确的方法可以让每个人都对驱动器感到满意?
答案1
Windows 通常会使用外部媒体(例如 USB 闪存驱动器)来未分区方式——也就是说,没有分区表,文件系统被写入整个磁盘。如果您的磁盘是这样设置的,您应该/dev/sdf
直接使用,如下所示:
mount /dev/sdf /mnt
您可以以类似的方式使用mkfs
、和其他工具。您可以使用来验证这一点,如。如果它告诉您这是一个 FAT(或其他)文件系统,那么我的假设是正确的。fsck
blkid
blkid /dev/sdf
/dev/sdf
如果磁盘上没有要保留的数据,并且您想在其上创建一个新的文件系统,则可以在整个磁盘上执行此操作,也可以使用fdisk
、parted
或其他工具来创建新鲜的(空)分区表。在 中fdisk
,您可以使用o
主菜单中的命令执行此操作。这将清除现有“分区”(可能只是fdisk
试图解释 FAT 文件系统的第一个扇区的绝望尝试)并创建一个新的空分区表。然后,您可以使用n
创建新分区,使用 保存更改w
,并使用mkfs
或mkdosfs
之外的fdisk
创建新的文件系统/dev/sdf1
。
请注意,Windows 仅识别包含分区表的 USB 闪存驱动器上的第一个分区。因此,如果您需要多个分区,请确保第一个分区是 Windows 可访问的分区。