Linux系统不能还原分区,更改分区后,linux无法启动,恢复小记

今天整理硬盘,把整个D盘(hda5)腾了出来,终于有空间试验raid lvm reiserfs v4.0啦

立刻用PQ删除了分区,成了未分配空间。正如预料的,由于分区改动了,linux进不去了。

于是开始了一番恢复。。。。。。

文章出处:DIY部落()[@more@]

Ok,Let`s go ! 先来看看分区情况吧!

未删除分区情况:

/dev/md0 /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8 /dev/hda9 /dev/hda10/dev/hda11/dev/hda12删除后分区情况:

/dev/md0 /dev/hda1 /dev/hda2 /dev/hda3 /dev/hda4 /dev/hda5 /dev/hda6 /dev/hda7 /dev/hda8 /dev/hda9/dev/hda10/dev/hda11

很明显,更改后的分区号=原分区号-1 (删除的D盘)

进入grub命令行:grub> root (hd0,6)

Filesystem type is ext2fs, partition type 0x83

grub> kernel (hd0,6)/vmlinuz-lfs-6.0 root=/dev/hda6 vga=791

因为我的vmlinuz-lfs-6.0(lfs内核)是放在/boot分区(hda7)的

而grub中(hd0,0)表示第一块硬盘的第一个分区(/dev/hda1)

所以(hd0,6)就对应了/dev/hda7,(/boot分区)

而lfs-6.0根分区修改后是/dev/hda6 所以是root=/dev/hda6

当我得意的按下enter时,意外发生了:

Error 15: File not found

咦?怎么会找不到文件呢?莫非我的分析完全错误了?

接着我输入了:

grub> find / 按下TAB键,让grub列出(hd0,6)/下面的东东:

Possible files are: lost found bin boot dev etc home lib .viminfo

mnt opt proc root sbin sys include tmp usr var

grub>

真是奇怪,怎么(hd0,6)会是我的lfs根分区呢?它应该是/boot呀。

查看下当前的分区情况吧:

grub> root (hd0, 按下TAB键显示当前分区:

Possible partitions are:

Partition num: 0, Filesystem type is fat, partition type 0xb

Partition num: 5, Filesystem type unknown, partition type 0x7

Partition num: 6, Filesystem type is ext2fs, partition type 0x83

Partition num: 7, Filesystem type is ext2fs, partition type 0x83

Partition num: 8, Filesystem type is reiserfs, partition type 0xfd

Partition num: 9, Filesystem type is ext2fs, partition type 0x83

Partition num: 10, Filesystem type unknown, partition type 0x82

Partition num: 11, Filesystem type unknown, partition type 0xfd

grub>

将分区号 1,竟然仍然是修改前的分区号,只是少了(hd0,4)=/dev/hda5 真是#%^&

grub> find (hd0,7)/ 再次按下TAB键,显示/dev/hda8的内容:

grub vmlinuz us.klt System.map-2.6.8.1-12mdk config-2.6.8.1-

12mdk vmlinuz-2.6.8.1-12mdk diag1.img diag2.img message-graphic

initrd-2.6.8.1-12 vmlinuz-lfs-6.0 .................

grub>

果然!/dev/hda8仍然是/boot分区,/dev/hda7是我的lfs根分区

既然这样,那么原来的引导信息就应该可以正常引导了。

grub > kernel (hd0,7)/vmlinuz-lfs-6.0 root=/dev/hda7 vga=791

结果可想而知,还是不能正常引导。(当然喽,能引导的话,就没意义记下了 ^_^)

引导过程中,出现"no init found root=.........."

看来是没有找到根分区,真是奇怪,(hd0,6)下的确是我的lfs根分区阿!?

莫非grub中标识的分区号和linux中的分区号标识不相同?? 试试先:

grub > kernel (hd0,7)/vmlinuz-lfs-6.0 root=/dev/hda6 vga=791

grub > boot

根据grub中标识的分区号,vmlinuz-lfs-6.0在(hd0,7)下

根据上面的分析,lfs-6.0的根分区是在/dev/hda6下

顺利进入!看来果真如此。grub仍然使用原始分区号,而linux中则是修改后的分区号

#cfdisk

Name Flags Part Type FSType Size (MB)

--------------------------------------------------------------------------------

hda1 Boot Primary W95FAT32 6859.89

Logical FreeSpace 22413.89

hda5 Logical NTFS 26386.70

hda6 Logical Linuxext3 10734.00

hda7 Logical Linuxext3 106.93

hda8 Logical Linux raidautodetect 3619.13

hda9 Logical Linuxext3 7221.80

hda10 Logical Linux swap /Solaris 534.65

hda11 Logical Linux raidautodetect 2146.80

结论:删除一个分区,在grub中只是将这个分区号去掉 (hd0,4)而其他的分区号并不改变

而linux中其他的分区号会改变,例如删除hda5,位于hda5以后的分区:分区号=原分区号-1

因此删除位于中间的分区是不好的,会导致grub与linux标识分区号不同,比较混乱。

俺也要赶紧把hda5做成lvm ReiserFS v4.0,这么多分区,真要糊涂了。:)

另外grub中的TAB键补全功能十分的好用,相信从上面已经体现了一些

使用linux第一步就要会一些grub基本用法啦,不然会很痛苦哟 :)

这有篇中/英双语的grub info文档,没看过的话,一定要看看哦 ^_^

?

t=135486&highlight=我翻 翻译 译的 grub info文档

文章出处:DIY部落()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值