我有一个 500GB 的外部 USB 驱动器,格式化为单个 FAT32 分区。我想要一个支持正常 Linux 文件系统权限的分区,因此我使用 parted 缩小了现有分区:
$ parted /dev/sda
(parted) resizepart 1 220GB
(上面有216GB的数据)。看起来效果很好:
(parted) print
Number Start End Size Type File system Flags
1 32.3kB 220GB 220GB primary fat32 lba
然后我创建了一个新的 ext4 分区:
(parted) mkpart primary ext4 220GB 500GB
(parted) print
Number Start End Size Type File system Flags
1 32.3kB 220GB 220GB primary fat32 lba
2 220GB 500GB 280GB primary ext4 lba
但有些事情不太正常,因为在尝试安装新分区并出现错误后,我再次检查了parted中的驱动器并看到了这一点:
(parted) print
Number Start End Size Type File system Flags
1 32.3kB 220GB 220GB primary fat32 lba
2 220GB 500GB 280GB primary
好的,解决这个问题:
$ sudo mkfs -t ext4 /dev/sda2
sda2 上的新分区似乎工作正常。旧分区可以很好地安装,我可以查看顶级文件夹结构,但尝试访问任何子文件夹时cd
会ls
出现输入/输出错误,并$ dmesg|tail
显示以下变化
FAT-fs (sda1): error, fat_get_cluster: invalid cluster chain (i_pos 0)
运行fsck /dev/sda1
给出:
fsck from util-linux 2.25.2
fsck.fat 3.0.27 (2014-11-12)
Seek to 500105216512:Invalid argument
FAT32分区上的数据可以恢复吗?认为我可以将大小调整为 220GB 而不会弄乱现有分区,是不是太天真了?