修复分区表

m.s*_*.sr 4 linux partition lvm

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

所以我在这里运行我的系统。在我重新启动之前,我希望/猜想什么都不会改变 - 意思是:我的所有数据都可以访问(我目前正在dd对整个设备进行.tar.gz备份,并计划稍后对最重要的数据进行备份)。我也支持/proc/partitions/proc/diskstats(尽管我猜这更多的是关于吞吐量和类似的东西......)和/sys/block/sda/sda?/{start,size}.

还有一些我知道的事情:

  • 4个主分区
  • 第一个分区:~100Mb,ext3,/boot
  • 第二个分区:~100Mb,“Win7 启动分区”,ntfs(?)
  • 第三个分区:~20...30GB,Win7,ntfs
  • 第 4 个分区:~20...30GB,luks 加密设备
  • luks- de加密设备是 LVM-PV
  • //homeswap-partitions是上面所指出的PV上(VG上)所有的LV

所以我的问题:

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

Mik*_*eyB 5

不太棘手。希望。

首先,请注意 /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
Run Code Online (Sandbox Code Playgroud)

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

Command (m for help): u
Changing display/entry units to sectors
Run Code Online (Sandbox Code Playgroud)

然后开始做分区。使用适当的数字start,并size为每个分区。
避免逐一错误 -size在将其输入 fdisk 之前减去一。

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
Run Code Online (Sandbox Code Playgroud)

不要忘记设置您的分区 ID 并在正确的分区上切换引导标志

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


当然,您可以使用您最喜欢的分区编辑器来完成所有这些工作…… parted 也可以正常工作。

如果您丢失了有关分区开始/结束的信息 - parted 有“救援”选项可以在磁盘中搜索丢失的分区。但你不应该需要这些。