使用parted调整大小后损坏FAT32簇链

使用parted调整大小后损坏FAT32簇链

我有一个 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 上的新分区似乎工作正常。旧分区可以很好地安装,我可以查看顶级文件夹结构,但尝试访问任何子文件夹时cdls出现输入/输出错误,并$ 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 而不会弄乱现有分区,是不是太天真了?

相关内容