You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在存储空间有限的硬件上挂载4TB分块磁盘镜像以恢复文件

如何在存储空间有限的硬件上挂载4TB分块磁盘镜像以恢复文件

嘿,我来帮你解决这个问题——你已经做了最关键的一步:先备份再尝试修复,这非常明智!针对你把4TB磁盘分成1GiB分块存储的情况,有几种简单的方法可以挂载镜像或者提取文件,不用把所有分块合并(毕竟你没有足够大的存储空间):

方法一:用losetup直接挂载分块镜像(推荐)

losetup可以把多个连续命名的分块文件当成一个完整的块设备,完美适配你的场景:

  1. 统一分块文件的访问路径:如果分块存在不同的物理磁盘上,先把所有磁盘挂载到系统中,然后把所有分块文件整理到同一个目录下(可以用符号链接,比如ln -s /mnt/disk1/4tb/p.* /mnt/merged/,确保命名是连续的p.0、p.1、p.2…没有缺漏)。

  2. 创建循环设备关联分块:
    执行以下命令,它会自动把所有分块拼接成一个只读的虚拟磁盘:

    sudo losetup -f --show --read-only 4tb/p.*
    

    执行后会输出一个循环设备路径,比如/dev/loop0。

  3. 查看分区信息:
    旧版fdisk不支持超过2^32扇区的GPT磁盘,所以用gdisk(更适合GPT)来查看分区:

    sudo gdisk -l /dev/loop0
    

    你应该能看到对应原/dev/sda1的分区,比如/dev/loop0p1。

  4. 挂载分区恢复文件:
    尝试只读挂载这个分区:

    sudo mount -o ro /dev/loop0p1 /mnt/recovery
    

    如果挂载成功,直接访问/mnt/recovery就能提取文件了。如果挂载报错(比如文件系统损坏),先运行只读检查:

    # 以ext4为例,根据你的文件系统替换(如xfs_repair -n)
    sudo fsck.ext4 -n /dev/loop0p1
    

方法二:用数据恢复工具直接读取分块(适合文件系统损坏严重的情况)

如果挂载失败,试试testdisk这种专业数据恢复工具,它能直接识别连续的分块镜像:

  1. 安装testdisk(比如在NixOS上用nix-env -iA nixos.testdisk)。
  2. 启动testdisk,选择Create创建日志文件。
  3. 选择第一个分块文件p.0,testdisk会自动识别同目录下的后续分块。
  4. 按照工具提示扫描分区,找到目标文件后直接提取即可。

关键注意事项

  • 全程使用只读模式(命令里的--read-only和-o ro),避免破坏备份镜像。
  • 确保分块文件的命名连续且无缺漏,否则虚拟磁盘会出现数据断裂。
  • 不要用旧版fdisk处理大GPT磁盘,改用gdisk或parted。

用户提供的fdisk输出(因磁盘扇区数超过2^32导致报错):

[nix@nixos:/run/media/nix/23e365ee-0922-46fc-a749-f732c2e0a77d]$ fdisk -l 4tb/p.0

Disk 4tb/p.0: 1024 MB, 1073741824 bytes, 2097152 sectors

130 cylinders, 256 heads, 63 sectors/track

Units: sectors of 1 * 512 = 512 bytes

Device  Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type

4tb/p.0p1    0,0,2       1023,255,63          1 4294967295 4294967295 2047G ee EFI GPT

Partition 1 has different physical/logical end:

phys=(1023,255,63) logical=(266305,4,4)

[nix@nixos:/run/media/nix/23e365ee-0922-46fc-a749-f732c2e0a77d]$ sudo fdisk -l /dev/sda

fdisk: device has more than 2^32 sectors, can't use all of them

Disk /dev/sda: 2048 GB, 2199023255040 bytes, 4294967295 sectors

266305 cylinders, 256 heads, 63 sectors/track

Units: sectors of 1 * 512 = 512 bytes

Device  Boot StartCHS    EndCHS        StartLBA     EndLBA    Sectors  Size Id Type

/dev/sda1    0,0,2       1023,255,63          1 4294967295 4294967295 2047G ee EFI GPT

备注:内容来源于stack exchange,提问作者gibb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.21 15:23:01