驱动器报告不正确的可用空间

Oli*_*Oli 7 filesystem ext4 dd

因此,我将闪亮的 SATA SSD 换成了更闪亮的 PCI-E SSD。我在 SSD 上运行我的核心操作系统,因为它非常快。我在我的旧 SSD 上做了这个,所以我创建了一个新的 EXT4 分区,然后只是dded 数据(对不起,我不知道我运行的确切命令),在重新安装 grub 后,我启动到 PCI-E SSD。乍一看,一切都运行良好,而且运行速度比以往任何时候都快。

但是后来我注意到新的更大驱动器上的可用磁盘空间:它几乎与另一个磁盘上的完全相同......一个磁盘大小的一半。

所以看起来好像我错误地复制了文件,并且它也复制了一些文件系统元数据。

duDisk Usage Analyzer这样的工具会返回正确的数字。查看分区(而不是文件)的东西似乎认为驱动器是 120GB

我已经使用这个驱动器一个星期了,所以它与旧的 SSD 不同步,所以转储数据并重新开始并不是让我高兴的工作,而是两个问题:

  1. 有没有办法修复我的文件系统,以便它知道它的真正含义?fsck e2fsck并且badblocks所有人似乎都能够扫描它而不会发现它的问题。

  2. 如果我重新插入我的旧 SSD,将数据从我的 PCI-E 复制到它,然后将它复制回一个新的文件系统(例如处理数据),这样做的最佳方法是什么?我显然想保留所有权限和软链接。

Mar*_*mo- 4

您使用的工具dd不是文件复制工具,而是磁盘复制工具,它逐字节复制。这意味着每条信息,包括有关驱动器分区空间量的元数据,都已被复制。

您需要对文件进行完整备份,格式化驱动器(包括完整分区格式),创建新的 ext4 根分区和交换驱动器,然后复制文件。

复制文件后,您需要chroot转移到新系统并运行命令update-grub以在新驱动器上安装引导系统。

或者您可以运行新安装的 Ubuntu 并将文件放回去。


奥利做了什么来解决这个问题

  1. 启动至 LiveCD 并选择“尝试 Ubuntu”
  2. 安装了我的 SSD 和另一个磁盘(要复制到)
  3. sudo rsync -ax /media/ssd /media/backup-drive/ssd-backup
    
    Run Code Online (Sandbox Code Playgroud)

    这需要很长时间。我在复制之前做了一些清理工作,但仍然有 35GB,虽然我的写入突发速度约为 120MB/s,但这需要一段时间。默认情况下,rsync 不会给你输出,但--progress如果你想要大量的细节,你可以添加(尽管它移动得太快,我无法真正阅读它——而且可能只是减慢了速度)。

  4. 我尝试对驱动器进行核攻击,但从 palimpsest(磁盘工具)中收到“设备繁忙”问题,因此我运行了安装程序!在安装程序中,我只是告诉它使用整个 SSD 驱动器创建一个漂亮的文件系统,然后在killall ubiquity它开始复制文件后运行。
  5. 然后我删除了安装程序复制的所有文件,然后复制回备份文件:

    sudo rm -rf /media/ssd/*
    sudo rsync -ax /media/backup-drive/ssd-backup /media/ssd
    
    Run Code Online (Sandbox Code Playgroud)
  6. 然后我重新启动,发现我的 UUID 已经改变(仔细想想就很明显),所以 grub2 不知道从哪里启动并崩溃了,所以我回到了 LiveCD。如果您将此作为指导,我建议您跳过此步骤;)
  7. 重新安装grub!我遵循帮助文档并遵循 chroot 选项。您可能会发现您需要/etc/fstab在其中进行编辑。
  8. 重新启动,你应该就完成了。我回来了,我有一个公制“oodle”的可用空间。万岁。