修复分区表

我刚刚覆盖了我系统硬盘的分区表。 我在错误的设备( /dev/sda而不是/dev/sdd )上做了一个cfdisk ,删除了所有的分区,在整个设备上创build了一个新的主分区,并将其types设置为07 (NTFS)

所以在这里我与我的系统运行。 直到我重新启动,我希望/猜测什么都不会改变 – 意思是说:我所有的数据都是可以访问的(我现在正在对整个设备进行dd备份,并计划在以后对最重要的数据做一个.tar.gz备份)。 我还备份/proc/partitions/proc/diskstats (即使我猜这是更多的吞吐量和这样的东西…)和/sys/block/sda/sda?/{start,size}

还有一些我知道的事情:

  • 4个主分区
  • 第一个分区:〜100Mb,ext3,/ boot
  • 第二个分区:〜100Mb,“Win7引导分区”,ntfs(?)
  • 第三个分区:〜20 … 30GB,Win7,ntfs
  • 第四个分区:〜20 … 30GB,luksencryption设备
  • 路由器是一个LVM-PV
  • //homeswap -partitions是上面提到的PV上的(VG)上的所有LV

所以我的问题:

  • 将内核分区表写入磁盘最简单的方法是什么?
  • 采取上述(也许其他我不知道的…)数据并生成分区表最简单的方法是什么?
  • 对于luks和/或lvm有没有问题需要注意?
  • 有什么数据我应该备份之前重新启动(meanig从内核[/ sys / …,/ proc / …等],这可以帮助我重新生成分区表))?

不太棘手。 希望。

首先,请记下/ dev / sda上所有分区的大小和顺序:

 challenger:/home/michael # grep . /sys/block/sda/sda*/{start,size} /sys/block/sda/sda1/start:63 /sys/block/sda/sda2/start:228690000 /sys/block/sda/sda3/start:257040 /sys/block/sda/sda1/size:256977 /sys/block/sda/sda2/size:83885760 /sys/block/sda/sda3/size:228432960 

在/ dev / sda上运行fdisk并将单位更改为扇区:

 Command (m for help): u Changing display/entry units to sectors 

然后开始制作分区。 为每个分区使用适当的数字startsize
避免出现错误 – 在将其input到fdisk之前,从size减去一个。

 Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First sector (63-312581807, default 63): Using default value 63 Last sector, +sectors or +size{K,M,G} (63-312581807, default 312581807): +256976 Command (m for help): p Disk /dev/sda: 160.0 GB, 160041885696 bytes 255 heads, 63 sectors/track, 19457 cylinders, total 312581808 sectors Units = sectors of 1 * 512 = 512 bytes Disk identifier: 0x02b002af Device Boot Start End Blocks Id System /dev/sda1 63 257039 128488+ 83 Linux 

不要忘记设置您的分区ID并切换右侧分区上的启动标志

现在重新安装MBR,你应该准备好了。


当然,你可以使用你最喜欢的分区编辑器来做这一切…分手的作品也很好。

如果您丢失了关于分区开始/结束的信息 – 分区有“search”选项来search磁盘丢失的分区。 但是你不应该需要这些。

如果分区表损坏,我build议使用RIP(救援可能是Linux)的启动盘来运行testing盘。 哎呀,你可能能够从正在运行的系统运行testing磁盘来扫描和恢复分区,但是我不会尝试这样做,因为我不知道对于正在运行的系统打开文件会有什么影响。

如果你想尝试重要数据的备份(你现在还没有?)现在是一个好时机。