加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

linux – 如何将使用’dd’创建的驱动器映像拆分为每个分区的单

发布时间:2020-12-13 18:18:26 所属栏目:Linux 来源:网络整理
导读:我用以下方法创建了一个故障驱动器的映像: dd if=/dev/sde of=/mnt/image001.dd 该驱动器只有两个分区: Device Boot Start End Blocks Id System/dev/sde1 * 1 13 102400 7 HPFS/NTFS/dev/sde2 13 60802 488282112 7 HPFS/NTFS 如何将图像(image001.dd)拆
我用以下方法创建了一个故障驱动器的映像:
dd if=/dev/sde of=/mnt/image001.dd

该驱动器只有两个分区:

Device Boot      Start         End      Blocks   Id  System
/dev/sde1   *           1          13      102400    7  HPFS/NTFS
/dev/sde2              13       60802   488282112    7  HPFS/NTFS

如何将图像(image001.dd)拆分为两个或三个文件(1:MBR; 2:分区1; 3:分区2),以便我可以将文件系统挂载到其中?

我发现对我不起作用的解决方案是使用split来创建许多512K文件,然后将它们一起重新组合成三个文件(1:512K,2:105M,3:其余的),但我不知道为此有磁盘空间.

历史:
我已经将整个图像复制到一个新的驱动器,它启动并且大多数工作.似乎旧的故障驱动器上的FS已损坏,并且dd复制了损坏的部分(应该如此),并且我将它们写入新驱动器.我的解决方案是挂载我复制的FS和复制文件(使用rsync或其他东西),以便我不会复制坏位.

更新1:我已经尝试了dd if = / mnt / image001.dd = / mnt / image001.part1.dd bs = 512 count = 204800 skip = 1但mount抱怨NTFS签名丢失了,所以我想我没有’做得对.

解决方法

您根本不需要拆分它.

使用parted获取有关分区表的详细信息:

parted image001.dd

在parted中,使用命令u切换到字节单位,然后是B.然后,发出命令print.

您将得到一个如下所示的输出(输出来自实际系统,而不是图像):

Model: Virtio Block Device (virtblk)
Disk /dev/vda: 25165824000B
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start         End           Size          Type     File system     Flags
 2      1048576B      400556031B    399507456B    primary  ext4            boot
 3      400556032B    21165506559B  20764950528B  primary  ext4
 1      21165506560B  25164775423B  3999268864B   primary  linux-swap(v1)

您可以使用起始编号作为环回安装的偏移量:

mount -o loop,ro,offset=400556032 image001.dd /mnt/rescue

将第三个分区挂载在/ mnt / rescue.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读