创建 EXT4 分区副本的最佳方法(无需稍后恢复)

ser*_*wus 4 linux backup hard-drive partitioning

目前,我的 PC 中有 2 * 2TB SSD:

  • 第一个只有一个带有 Windows 的 NTFS 分区。
  • 第二个分区有多个分区:Windows 使用 1 TB NTFS,Linux 使用 4 个分区:两个大的 EXT4 分区用于数据,一个交换分区,一个用于 GRUB 引导加载程序。我需要准备全新的 Linux 安装并清除那 2 个大的 Linux 分区,但我想复制它们,这样我就可以访问一些旧数据。

准备这两个 EXT4 分区的副本以便我稍后可以访问它们的最佳方法是什么?我实际上并不需要从这些副本恢复工作系统分区,我只需要访问文件,尽管目前我无法决定我需要哪些文件和不需要哪些文件。我有另一个空磁盘,有足够的空间来容纳所有这些。我希望节省尽可能多的空间,但我也不想永远等待解压密集的档案。

我当时考虑了 3 个解决方案:

  • 使用一些工具可以从每个分区创建单个文件。但是,是否可以访问这些副本中的文件而不从其中恢复整个分区?
  • 这些分区的逐字节副本。但这样会不会浪费另一个磁盘上的大量空间呢?这些分区上有大量可用空间。
  • 只需使用一些文件管理器将所有现有文件复制到另一个磁盘上准备好的目录中,无需创建任何特殊分区。如果我以后不需要恢复这些分区,该解决方案是否有一些缺点?

Aus*_*arn 7

假设您不需要\xe2\x80\x99t 块的磁盘布局的精确副本,并且这是一个只读副本,我选择的工具是 SquashFS。

\n

顾名思义,SquashFS 是一个文件系统,但除了可以在 Linux 上直接安装之外,它\xe2\x80\x99 最好被认为是一种非常奇特的存档格式。除了存储文件之外,它还:

\n
    \n
  • 使用选择的算法压缩它们(或者选择根本不压缩)。
  • \n
  • 压缩它\xe2\x80\x99s自己的内部数据结构,独立于文件(这平均得到更好的压缩比,因为你\xe2\x80\x99t最终不会导致压缩器状态被以前的文件/元数据污染)。
  • \n
  • 检测重复文件并仅存储具有多个硬链接的数据的一份副本。
  • \n
  • Sanely 处理稀疏文件,仅存储实际数据。
  • \n
  • 有特殊处理以避免文件末尾的部分块浪费空间。
  • \n
  • 存储完整的UNIX 权限和所有权。
  • \n
  • 存储扩展属性,包括对 POSIX ACL、SELinux 安全上下文和其他有用内容的支持。
  • \n
  • 允许对文件进行完全随机访问(不需要解析大部分文件系统/存档只是为了获取接近末尾的文件)。
  • \n
\n

这使得它特别适合您描述的用例类型。

\n

大多数 Linux 系统都具有创建 SquashFS 映像所需的工具,这些映像位于名为 的包中squashfs-tools。创建后可以通过三种不同的方式访问 SquashFS 映像:

\n
    \n
  • 几乎所有主要的 Linux 发行版都包含 SquashFS 的内核驱动程序,让您将 SquashFS 映像视为常规文件系统(尽管如果您使用某些压缩算法,您将需要一个足够新的内核来读取映像)。
  • \n
  • 大多数 Linux 发行版可用的软件包squashfuse也可以让您使用 FUSE 将映像安装为文件系统,这意味着您不需要 root 访问权限(但性能稍差)。
  • \n
  • squashfs-tools提供了一个名为 的命令unsquashfs,可用于列出或提取单个文件,就像使用大多数其他存档格式一样。
  • \n
\n


use*_*686 5

\n

但我也不想永远等待解压密集的档案。

\n
\n

那么不要使用 Tar 作为存档格式。大多数其他存档格式(7z、rar、zip)默认情况下都是非“密集”的,允许直接提取单个文件,而不会显着降低压缩效率。

\n
\n

使用一些工具可以从每个分区创建单个文件。但是,是否可以访问这些副本中的文件而不从其中恢复整个分区?

\n
\n

是的,与从实际分区读取的方式完全相同。两者在访问文件方面没有什么本质上的不同。

\n

因此,当您有一个包含 ext4 映像的文件时:

\n
    \n
  • 在 Linux 上,包含文件系统的文件可以附加到“循环设备”,然后可以像分区一样安装。(它甚至支持 fstrim,允许您修剪内部文件系统的“空”空间,使其不占用外部文件系统中的空间,只要后者支持稀疏文件。)

    \n

    大多数其他系统支持挂载文件支持的文件系统;即使 Windows 也有支持 ISO 和 VHD 格式的有限形式(尽管这对使用 ext4 没有帮助,但 Disk2vhd 将是 NTFS 磁盘的首选工具)。

    \n
  • \n
  • 在 Windows 上,7-zip 存档器支持 ext4,就像它是存档格式一样,因此您可以打开 ext4 图像并浏览其中的文件。

    \n
  • \n
\n

(档案和文件系统 \xe2\x80\x93 之间几乎没有什么区别,这都是关于内部数据的结构的,即它是否有一个允许查找的中央索引,它是否使用了不可查找的压缩形式例如,当访问 tar.gz 存档中的某些内容时,您需要“提取”所有内容,因为其面向磁带的结构没有中心索引,并且它的压缩会立即应用于整个存档,但您不需要对于 zip/rar/7z 档案不必这样做,因为它们单独压缩每个项目。)

\n
\n

这些分区的逐字节副本。但这样会不会浪费另一个磁盘上的大量空间呢?这些分区上有大量可用空间。

\n
\n

大多数文件系统支持“稀疏”文件,其中长时间运行的 NUL 字节只能被标记为“漏洞”,而不存储在磁盘上。有一些分区克隆工具可以理解文件系统结构并跳过复制文件系统指示为空的区域,从而创建不占用其完整大小的稀疏映像文件。对于 NTFS,这样的工具是 ntfsclone,对于 ext4 和 btrfs 以及其他 \xe2\x80\x93 部分克隆。

\n

(Linux“循环设备”甚至可以在克隆后将全尺寸图像转换为稀疏图像,只要您首先可以容纳完整图像。)

\n

还有一些映像格式可以跟踪内部“漏洞”\xe2\x80\x93,VM 使用它们来存储虚拟机磁盘映像。VHD/VHDX 就是这样一种格式;如果使用Disk2vhd将NTFS镜像创建为VHD文件,它只占用与内部数据一样多的空间,并且可以通过双击打开它。

\n