红联Linux门户
Linux帮助

关于GPT磁盘的分区表备份

发布时间:2012-09-21 14:29:46来源:红联作者:okzokz123
[i=s] 本帖最后由 okzokz123 于 2012-9-21 14:32 编辑 [/i]

这几天一直在琢磨GPT磁盘的分区表备份的问题,因为打算买个大点的硬盘来存资料。又因为担心数据安全的问题,有必要研究一下GPT磁盘的分区表备份和恢复。google了半天也没有个结果,就在virtualbox里面做了个试验。
思路是先建立一个GPT分区,备份分区表后拷点东西进去,然后破坏掉分区表,再恢复,看看里面的东西还在不在。系统就用刚出的中标麒麟6.0了(下来一天才弄下来的,官方没给HASH值,要吐槽一下)
1. [root@localhost ~]# parted /dev/sdb //用virtualbox虚拟的磁盘sdb来做试验
mklabel //建立分区表
gpt //使用GPT分区表
unit //选择读取方式
s //使用扇区来表示
mkpart //建立一个分区
分区名称? []? 1 //简单些就叫做1
文件系统类型 ? [ext2]? //我输入了ext4,结果没正确建立起来
起始点?2048 //从1M处开始,据说这样可以避免4k问题
结束点?-1 //所有磁盘分一个区
警告: You requested a partition from 2048s to 1023999s.
The closest location we can manage is 2048s to 1023966s.
Is this still acceptable to you?
是/Yes/否/No? y
(parted) p //查看一下,已经是GPT了,只是没格式化成我指定的ext4
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 1024000s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name 标志
1 2048s 1023966s 1021919s 1
(parted) q //退出parted

2. [root@localhost ~]# mkfs.ext4 /dev/sdb1 //格式化成ext4

mke2fs 1.41.10 (10-Feb-2009)
文件系统标签=
操作系统:Linux
块大小=1024 (log=0)
分块大小=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
128016 inodes, 510956 blocks
25547 blocks (5.00%) reserved for the super user
第一个数据块=1
Maximum filesystem blocks=67633152
63 block groups
8192 blocks per group, 8192 fragments per group
2032 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409

正在写入inode表: 完成
Creating journal (8192 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

This filesystem will be automatically checked every 22 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

3. [root@localhost ~]# dd if=/dev/sdb of=/home/gg/sdb.img bs=512 skip=1 count=32 //备份分区表,跳过前面512字节的保护mbr,不知道这样是不是正确的
记录了32+0 的读入
记录了32+0 的写出
16384字节(16 kB)已复制,0.00189832 秒,8.6 MB/秒
4. [root@localhost ~]# mount /dev/sdb1 /home/gg/gz //然后把磁盘挂起来
5. [root@localhost ~]# cp /usr/share/sounds/K* /home/gg/gz/ //拷些系统自带的音频过去
6. [root@localhost ~]# umount /home/gg/gz //卸载掉
7. [root@localhost ~]# dd if=/home/gg/sdb.img of=/dev/sdb bs=512 count=32 seek=1 //把刚才备份的分区表恢复过去
记录了32+0 的读入
记录了32+0 的写出
16384字节(16 kB)已复制,0.00485221 秒,3.4 MB/秒
8. [root@localhost ~]# mount /dev/sdb1 /home/gg/gz //挂上去,果然文件都还能用,能放出声音来
9. [root@localhost ~]# dd if=/dev/urandom of=/dev/sdb bs=512 count=33 //把前面保护mbr和分区表都填了
记录了33+0 的读入
记录了33+0 的写出
16896字节(17 kB)已复制,0.00560489 秒,3.0 MB/秒
10. [root@localhost ~]# mount /dev/sdb1 /home/gg/gz //挂回去,奇怪数据还在,也能用
11. [root@localhost ~]# umount /home/gg/gz //卸载掉
12. [root@localhost ~]# parted /dev/sdb //再用parted看看
GNU Parted 2.1
(parted) p
错误: /dev/sdb: unrecognised disk label //已经找不到了
(parted) unit //换成扇区
Unit? [compact]? s
(parted) p //还是找不到
错误: /dev/sdb: unrecognised disk label
(parted) q
13.[root@localhost ~]# dd if=/dev/zero of=/dev/sdb bs=512 count=1 //做个填零
记录了1+0 的读入
记录了1+0 的写出
512字节(512 B)已复制,0.00410604 秒,125 kB/秒
14. [root@localhost ~]# parted /dev/sdb //再看,还是不认
GNU Parted 2.1
(parted) p
错误: /dev/sdb: unrecognised disk label
(parted) q
15. [root@localhost ~]# dd if=/home/gg/sdb.img of=/dev/sdb bs=512 count=32 seek=1 //写回备份的分区表,但是破坏时前面用了count=33,所以估计还是有错
记录了32+0 的读入
记录了32+0 的写出
16384字节(16 kB)已复制,0.00359624 秒,4.6 MB/秒
16. [root@localhost ~]# parted /dev/sdb //再看,已经发现GPT分区,但是没有保护MBR,就是差的那一块,转成扇区查看也是一样的结果
GNU Parted 2.1
(parted) p
警告: /dev/sdb contains GPT signatures, indicating that it has a GPT table. However, it does not have a valid
fake msdos partition table, as it should. Perhaps it was corrupted -- possibly by a program that doesn't
understand GPT partition tables. Or perhaps you deleted the GPT table, and are now using an msdos partition
table. Is this a GPT partition table?
是/Yes/否/No? yes
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 524MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name 标志
1 1049kB 524MB 523MB ext4 1

(parted) uint
align-check TYPE N check partition N for TYPE(min|opt) alignment
check NUMBER do a simple check on the file system
cp [FROM-DEVICE] FROM-NUMBER TO-NUMBER copy file system to another partition
help [COMMAND] print general help, or help on COMMAND
mklabel,mktable LABEL-TYPE create a new disklabel (partition table)
mkfs NUMBER FS-TYPE make a FS-TYPE file system on partition NUMBER
mkpart PART-TYPE [FS-TYPE] START END make a partition
mkpartfs PART-TYPE FS-TYPE START END make a partition with a file system
move NUMBER START END move partition NUMBER
name NUMBER NAME name partition NUMBER as NAME
print [devices|free|list,all|NUMBER] display the partition table, available devices, free space, all found
partitions, or a particular partition
quit exit program
rescue START END rescue a lost partition near START and END
resize NUMBER START END resize partition NUMBER and its file system
rm NUMBER delete partition NUMBER
select DEVICE choose the device to edit
set NUMBER FLAG STATE change the FLAG on partition NUMBER
toggle [NUMBER [FLAG]] toggle the state of FLAG on partition NUMBER
unit UNIT set the default unit to UNIT
version display the version number and copyright information of GNU Parted
(parted) unit
Unit? [compact]? s
(parted) p //提示大概是已经识别GPT,但是没有找到保护MBR,就是前面多填的那块。
警告: /dev/sdb contains GPT signatures, indicating that it has a GPT table. However, it does not have a valid
fake msdos partition table, as it should. Perhaps it was corrupted -- possibly by a program that doesn't
understand GPT partition tables. Or perhaps you deleted the GPT table, and are now using an msdos partition
table. Is this a GPT partition table?
是/Yes/否/No? yes
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 1024000s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name 标志
1 2048s 1023966s 1021919s ext4 1

(parted) mklabel //重新建一次
新的磁盘标签类型? gpt
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to
continue?
是/Yes/否/No? yes
警告: /dev/sdb contains GPT signatures, indicating that it has a GPT table. However, it does not have a valid
fake msdos partition table, as it should. Perhaps it was corrupted -- possibly by a program that doesn't
understand GPT partition tables. Or perhaps you deleted the GPT table, and are now using an msdos partition
table. Is this a GPT partition table?
是/Yes/否/No? yes
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 524MB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name 标志

(parted) unit
Unit? [compact]? s
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 1024000s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name 标志

(parted) q
信息: You may need to update /etc/fstab.

17. [root@localhost ~]# dd if=/home/gg/sdb.img of=/dev/sdb bs=512 count=32 seek=1 //重新写回备份的分区表
记录了32+0 的读入
记录了32+0 的写出
16384字节(16 kB)已复制,0.00257806 秒,6.4 MB/秒
18.[root@localhost ~]# parted //再看,结果从分区角度看已经正常了
GNU Parted 2.1
使用 /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) unit
Unit? [compact]? s
(parted) select
新设备? [/dev/sda]? /dev/sdb
使用 /dev/sdb
(parted) p
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 1024000s
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name 标志
1 2048s 1023966s 1021919s ext4 1

(parted) q
19. [root@localhost ~]# mount /dev/sdb1 /home/gg/gz //准备挂回去,怎么没发现文件系统类型,要求要指定
mount: you must specify the filesystem type
20. [root@localhost ~]# mount -t ext4 /dev/sdb1 /home/gg/gz //指定了要挂回去,还是不行
mount: special device /dev/sdb1 does not exist
21. [root@localhost ~]# partprobe //让系统自己再识别一次
Warning: WARNING: the kernel failed to re-read the partition table on /dev/sda (设备或资源忙). As a result, it may not reflect all of your changes until after reboot.
22. [root@localhost ~]# mount /dev/sdb1 /home/gg/gz //这次直接挂上去了,进去看看,所有文件都正常使用。

问题:不知道这种方法是不是正确的,主要是dd命令上有没有错误。
文章评论

共有 7 条评论

  1. hlhlinux 于 2012-10-05 00:27:28发表:

    恩,很详细

  2. okzokz123 于 2012-09-22 15:57:50发表:

    6# iFuntoo


    如你所说,可能我把纯MBR磁盘和GPT磁盘搞混淆了。下面用兄弟提供的方法用34个块来试验了一下。考虑到大容量磁盘的实际问题,改用KVM虚拟了块3TB的磁盘,用最后500M来做了试验。
    第一阶段:用完整的34个块的备份和恢复,怎么来就怎么去的,第一阶段就是练习了dd,其实就没啥意义。[code]1. root@debian:/home/gg# parted /dev/sdb //先建立的分区,使用模拟 3TB 磁盘的最后500MB,应该可以排除保护MBR的作用了。
    GNU Parted 2.3
    Using /dev/sdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) p
    Model: ATA QEMU HARDDISK (scsi)
    Disk /dev/sdb: 3221GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number Start End Size File system Name Flags
    1 1049kB 525MB 524MB ext4 //这里考虑到对紧邻GPT分区表的分区内数据的影响后来多分了个区,所以后面有个sdb4就出现了
    4 525MB 2500GB 2499GB
    2 2500GB 3221GB 721GB
    3 3221GB 3221GB 523MB ext4 //这是最后一个分区,超出了前2500G以外的500MB

    (parted) q

    在这里挂来挂去拷东西是为了第三阶段试验做准备。
    2. root@debian:/home/gg# mount /dev/sdb3 /home/gg/gz //挂上去
    root@debian:/home/gg# cp /usr/share/sounds/alsa/* /home/gg/gz/ //拷点东西
    root@debian:/home/gg# umount /home/gg/gz //卸载掉
    root@debian:/home/gg# mount /dev/sdb1 /home/gg/gz //挂上去
    root@debian:/home/gg# cp /usr/share/sounds/alsa/* /home/gg/gz/ //也拷点东西
    root@debian:/home/gg# umount /home/gg/gz //卸载掉

    3. root@debian:/home/gg# dd if=/dev/sdb of=/home/gg/sdbfqb34.img bs=512 count=34 //备份34个块的分区表信息
    记录了34+0 的读入
    记录了34+0 的写出
    17408字节(17 kB)已复制,0.00272314 秒,6.4 MB/秒
    root@debian:/home/gg# dd if=/dev/sdb of=/home/gg/gpt33.img bs=512 count=33 skip=1 //备份除保护MBR以外的GPT分区表
    记录了33+0 的读入
    记录了33+0 的写出
    16896字节(17 kB)已复制,0.0217134 秒,778 kB/秒

    4. root@debian:/home/gg# dd if=/dev/urandom of=/dev/sdb bs=512 count=34 //清除分区表,34个块
    记录了34+0 的读入
    记录了34+0 的写出
    17408字节(17 kB)已复制,0.0562062 秒,310 kB/秒

    5. root@debian:/home/gg# parted /dev/sdb //看看,没认出来
    GNU Parted 2.3
    Using /dev/sdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) p
    Error: /dev/sdb: unrecognised disk label
    (parted) q

    6. root@debian:/home/gg# dd if=/home/gg/sdbfqb34.img of=/dev/sdb bs=512 count=34 //全部恢复34个块
    记录了34+0 的读入
    记录了34+0 的写出
    17408字节(17 kB)已复制,0.0195889 秒,889 kB/秒

    7.root@debian:/home/gg# parted /dev/sdb //看一下,都认出来了
    GNU Parted 2.3
    Using /dev/sdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) p
    Model: ATA QEMU HARDDISK (scsi)
    Disk /dev/sdb: 3221GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number Start End Size File system Name Flags
    1 1049kB 525MB 524MB ext4
    4 525MB 2500GB 2499GB
    2 2500GB 3221GB 721GB
    3 3221GB 3221GB 523MB ext4

    (parted) q

    8. root@debian:/home/gg# mount /dev/sdb3 /home/gg/gz //挂上去验证一下,确实都回来了。
    [/code]第一阶段完成。

    第二阶段:这种情况有点像GPT分区表被破坏的样子了,尝试只还原GPT的33个块,不管保护MBR能不能用。[code]
    1. root@debian:/home/gg# umount /home/gg/gz //卸载了

    2. root@debian:/home/gg# dd if=/dev/urandom of=/dev/sdb bs=512 count=34 //删除分区表34个块,铁定是用不了了,就不看了,后面直接还原33个块
    记录了34+0 的读入
    记录了34+0 的写出
    17408字节(17 kB)已复制,0.0556789 秒,313 kB/秒

    3. root@debian:/home/gg# dd if=/home/gg/gpt33.img of=/dev/sdb bs=512 count=33 seek=1 //跳过保护MBR,只还原GPT分区表
    记录了33+0 的读入
    记录了33+0 的写出
    16896字节(17 kB)已复制,0.0495798 秒,341 kB/秒

    4.root@debian:/home/gg# parted /dev/sdb //开始没认出来,于是手动指定了GPT格式能看到已经回来了
    GNU Parted 2.3
    Using /dev/sdb
    Welcome to GNU Parted! Type 'help' to view a list of commands.
    (parted) p
    Warning: /dev/sdb contains GPT signatures, indicating that it has a GPT table. However, it does not have a valid fake msdos
    partition table, as it should. Perhaps it was corrupted -- possibly by a program that doesn't understand GPT partition tables.
    Or perhaps you deleted the GPT table, and are now using an msdos partition table. Is this a GPT partition table?
    Yes/No? yes
    Error: The backup GPT table is corrupt, but the primary appears OK, so that will be used.
    OK/Cancel? ok
    Model: ATA QEMU HARDDISK (scsi)
    Disk /dev/sdb: 3221GB
    Sector size (logical/physical): 512B/512B
    Partition Table: gpt

    Number Start End Size File system Name Flags
    1 1049kB 525MB 524MB ext4
    4 525MB 2500GB 2499GB
    2 2500GB 3221GB 721GB
    3 3221GB 3221GB 523MB ext4

    (parted) q

    5. root@debian:/home/gg# mount /dev/sdb3 /home/gg/gz //想挂上去结果没识别,指定过了也不行,想想也许要重新识别一次磁盘
    mount: special device /dev/sdb3 does not exist
    root@debian:/home/gg# mount -t ext4 /dev/sdb3 /home/gg/gz
    mount: special device /dev/sdb3 does not exist

    6. root@debian:/home/gg# partprobe //刷一下,下面的提示大概是说可能是个GPT磁盘,但是没有保护MBR。因为还原的时候跳过了最前面一块
    Warning: /dev/sdb contains GPT signatures, indicating that it has a GPT table. However, it does not have a valid fake msdos partition table, as it should. Perhaps it was corrupted -- possibly by a program that doesn't understand GPT partition tables. Or perhaps you deleted the GPT table, and are now using an msdos partition table. Is this a GPT partition table?
    Error: The backup GPT table is corrupt, but the primary appears OK, so that will be used.

    7. root@debian:/home/gg# mount /dev/sdb3 /home/gg/gz //挂上去,文件都是好的,能用
    [/code]第二阶段完。

    第三阶段,替换最前面一个分区的内容,看看用早先备份的34个块的信息恢复GPT分区表后会不会破坏紧靠GTP分区表的第一个分区里面的内容[code] root@debian:/home/gg# umount /home/gg/gz
    root@debian:/home/gg# dd if=/home/gg/sdbfqb34.img of=/dev/sdb bs=512 count=34 //先用最早备份的34个块进行恢复
    root@debian:/home/gg# mount /dev/sdb1 /home/gg/gz
    root@debian:/home/gg# cp /usr/share/sounds/* /home/gg/gz/ //更新一些内容
    root@debian:/home/gg# umount /home/gg/gz
    root@debian:/home/gg# dd if=/dev/urandom of=/dev/sdb bs=512 count=34 //删除分区表
    记录了34+0 的读入
    记录了34+0 的写出
    17408字节(17 kB)已复制,0.0562062 秒,310 kB/秒
    root@debian:/home/gg# dd if=/home/gg/sdbfqb34.img of=/dev/sdb bs=512 count=34 //用最早的备份恢复
    记录了34+0 的读入
    记录了34+0 的写出
    17408字节(17 kB)已复制,0.0206843 秒,842 kB/秒
    root@debian:/home/gg# mount /dev/sdb1 /home/gg/gz //还都在,能正常用。
    [/code]但是因为测试不可能都填满,所以是不是可靠待各位验证。其实整个试验就是在用那几个备份的块dd来dd去,也没啥技术含量,主要是要搞清楚对GPT分区的理解。希望大家共勉。

  3. iFuntoo 于 2012-09-22 12:21:00发表:

    不知兄台还有否更严谨的论证方法?我觉得目前的问题是,到底应该备份多少个扇区。
    从Wiki看的话,LBA0,也就是第一个扇区是PMBR。LBA1,也就是第二扇区,是GPT头。LBA2-33也就是3-34扇区,才是分区表。
    也就是说,包含PMBR在内的话,总共应该有34个扇区,这也就是为何我是用了count=33,而不是像你那样的count=32。我认为,如果跳过第一扇区的PMBR进行备份,采用count=32的话,你备份的分区表很可能是不完整的。

  4. okzokz123 于 2012-09-22 11:33:59发表:

    4# iFuntoo


    MBR位于0柱面,0磁头,1扇区,所以我觉得还是应该从1扇区开始计算,而据能查到的资料看GPT的分区表位于2~33扇区,所以我破坏分区表是采用了33个块的计算(包含1扇区的MBR)。
    另外也觉得应该不是GTP尾部的备份分区表起的作用,因为目前版本的 parted 没有自己恢复分区表的功能,是使用了 msdos 即MBR分区表来识别硬盘。
    virtualbox的目前只能最大支持 2TB 的虚拟磁盘。我们做试验的数据其实都是在前 2TB 以内,所以即使GPT出问题了,而数据也可以由再生的 MBR 来识别到。
    还有个问题是如果买到的是4K硬盘又该怎么办,目前好像4K硬盘还是512字节从固件模拟的,如果今后是默认4K一个块是不是简单计算,还是以块为标准。或者GPT本身定义又调整,那都是杞人忧天的事了。目前要解决的是现实的512字节的GPT分区表备份还原的问题。

  5. iFuntoo 于 2012-09-21 21:46:01发表:

    稍微研究了下,把我的全过程贴出来吧,和LZ一起探讨下。采用的是VirtualBox虚拟机+Ubuntu的LiveCD,不知道这样是否严谨。[code]root@ubuntu:~# parted /dev/sda
    GNU Parted 2.3
    使用 /dev/sda
    欢迎使用 GNU Parted! 输入 'help'可获得命令列表.
    (parted) p
    Model: ATA VBOX HARDDISK (scsi)
    磁盘 /dev/sda: 21.5GB
    Sector size (logical/physical): 512B/512B
    分区表:gpt

    数字 开始: End 大小 文件系统 Name 标志
    1 1049kB 21.5GB 21.5GB ext4

    (parted) q
    root@ubuntu:~# mount /dev/sda1 /mnt
    root@ubuntu:~# cp -R /usr/share/sounds/* /mnt/
    root@ubuntu:~# ls /mnt
    alsa freedesktop gnome lost+found speech-dispatcher ubuntu[/code]到这里为止是把分区创建好了,顺便复制了点东西过去。当然,我是用gparted预先分好的,没用parted来分区。[code]root@ubuntu:~# umount /mnt
    root@ubuntu:~# ls /mnt
    root@ubuntu:~# dd if=/dev/sda of=/sda.img bs=512 skip=1 count=33
    记录了33+0 的读入
    记录了33+0 的写出
    16896字节(17 kB)已复制,0.00303114 秒,5.6 MB/秒
    root@ubuntu:~# dd if=/dev/zero of=/dev/sda bs=512 count=34
    记录了34+0 的读入
    记录了34+0 的写出
    17408字节(17 kB)已复制,0.00230562 秒,7.6 MB/秒
    root@ubuntu:~# parted /dev/sda
    GNU Parted 2.3
    使用 /dev/sda
    欢迎使用 GNU Parted! 输入 'help'可获得命令列表.
    (parted) p
    错误: /dev/sda:未确认磁盘标签
    (parted) q [/code]我跳过PMBR,把分区表头和表项一起进行了备份,然后再把LBA0-33全部抹掉,果然无法识别分区表了。[code]root@ubuntu:~# dd if=/sda.img of=/dev/sda bs=512 count=33 seek=1
    记录了33+0 的读入
    记录了33+0 的写出
    16896字节(17 kB)已复制,0.00091962 秒,18.4 MB/秒
    root@ubuntu:~# parted /dev/sda
    GNU Parted 2.3
    使用 /dev/sda
    欢迎使用 GNU Parted! 输入 'help'可获得命令列表.
    (parted) p
    警告: /dev/sda 含有 GPT 签名,表明它含有 GPT 表。然而,它并不像应该的那样含有有效的伪 msdos 分区表。可能它已经损坏 -
    可能是由不理解 GPT 分区表的程序导致的。或者您删除了 GPT 表,现在使用 msdos 分区表。这是 GPT 分区表吗?
    是/Yes/否/No? yes
    Model: ATA VBOX HARDDISK (scsi)
    磁盘 /dev/sda: 21.5GB
    Sector size (logical/physical): 512B/512B
    分区表:gpt

    数字 开始: End 大小 文件系统 Name 标志
    1 1049kB 21.5GB 21.5GB ext4

    (parted) q
    root@ubuntu:~# mount /dev/sda1 /mnt
    root@ubuntu:~# ls /mnt
    alsa freedesktop gnome lost+found speech-dispatcher ubuntu[/code]在我把备份文件恢复回去以后,再用gparted查看,就又回来了。不过这里可能有疑惑,不知道这是我自己手动备份的LBA1-33起的作用,还是GPT尾巴上的备份分区表起的作用。这方面来看的话,我的论证还不严谨。

  6. dfwclm 于 2012-09-21 16:31:23发表:

    中标麒麟6属于linux的核心不

  7. iFuntoo 于 2012-09-21 15:26:45发表:

    我觉得有点问题,LBA0是PMBR,LBA1是分区表头,LBA2-33才是分区表项,这么看来,我们需要备份的应该就是LBA2-33的部分。也就是说,需要跳过的不光是PMBR,还有分区表头也需要。
    当然,只是个人猜测,我会抽空按照你的步骤验证一下。