LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 3850|回复: 15

本人用grub2的惊魂事件。。。我爱死grub2了~~

[复制链接]
发表于 2009-2-26 22:45:11 | 显示全部楼层 |阅读模式
grub2太强大了。。。 :em06 :em06 :em06 :em06


尚处于开发状态中的grub2 功能简直无敌了。。。。简直就是一个微型OS。。。而且最核心的代码还完整的安装到了 MBR。。。



archlinux 安装很简单。。。(

#pacman -Rs grub
#rm -rf /boot/grub
#pacman -S grub2
#grub-mkdevicemap #创建了一个 device.map 文件在/boot/grub/ 下是个纯文本文件,有兴趣不妨手动打开看看。。就知道是作什么的了。。。
#grub-install /dev/sda5 #此处换成你的root分区 这是在指定的分区上安装一些核心模块和一些 必要的文件 到/boot/grub/ 默认是装在这里的。。
#grub-setup /dev/sda #这跟上面那个不一样 这个是安装到 sda 这块硬盘的mbr上。。换成sdaX就是安装到指定的分区上。。。

然后 vim /boot/grub/grub.conf #不用menu.lst了.............

里面的内容自己去找下怎么配置~~~很简单 如果你学过c/c++ 和bash脚本编程 你是不是觉得很熟悉??? 。。。我瞎摸也编辑好了~~~

里面跟grub有些不太一样的地方。。。例如kernle 直接改成了一个 linux 指令。。。(hd0,0) 不是第一个分区了。。。而是(hd0,1)了。其他以此类推 害得我第一次启动的时候郁闷了好久。居然还支持变量设置。。动态加载模块。。其他命令用法直接在grub shell 界面打 help。。。

好了。。现在grub2安装完了。。用了几天感觉良好。。。下面该说下 今天惊喜的发现了 让我觉得很强大


我原来的 root分区是在 扩展分区上的 sda5 。。。今天把前面一个分区删掉格成两块了。。所以原来的sda5 就变成了sda6 。。。。这样grub肯定要报错。。。我重启之前居然忘了重新一遍grub。。。。当我输入reboot的时候才想起。。。。。此时回车已经按下。。。汗死心想完了~~grub死了。。。现在我身边一没有dos启动盘 二没有linux live cd工具盘

我汗。。。。。。。重启后吃惊的发现。。居然不是 那个经典的 Error 15 。。而是给了我一个功能最最最小的shell。此时这个shell 功能也不差。insmod set ls 。。。等等基础命令还在。。。。研究了一会发现:
直接输入ls

(hd0,1) ......(hd0,6).........

居然能显示所有分区。。
然后:

ls (hd0,6)/boot/

汗亚 居然认识 ext3 分区。。。



ls (hd0,6) /boot/grub/

linux.mod pc.mod
......................
....................
......................

显示了所有模块。。。


马上想起insmod这个命令。。。




insmod (hd0,6)/boot/grub/linux.mod

没反应???

无意间打了一个lsmod

狂喜发现 linux 和 initrd 命令回来了!!!!


接下来不用我说了。。。。


linux (hd0,6)/boot/vmlinuz26 root=/dev/sda6 vga=792
initrd (hd0,6) /boot/kernle26.img
boot


yes!!正如想想中的那样。。。linux顺利地启动了。。。。进去后想到的第一件事情就是


执行下 grub-setup /dev/sda ..................




grub2 正处于开发中。。就已经显示出其“无敌”的功能 。。能把最关键的部分直接放进只有446 字节的mbr里。。实在是超级强大。。。。
 楼主| 发表于 2009-2-26 22:46:41 | 显示全部楼层
由此可见。。。只要grub2还在mbr上 没损坏 以及rootfs能读取(主要是里面的模块)。。。grub2还是能自救的
回复 支持 反对

使用道具 举报

发表于 2009-2-26 23:05:13 | 显示全部楼层
意思是 grub shell 被强化了?

请问其他如 grub.conf (menu.lst) 里的格式有变动否?
回复 支持 反对

使用道具 举报

发表于 2009-2-26 23:29:00 | 显示全部楼层
grub2 支持efi gpt分区了吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-26 23:30:16 | 显示全部楼层
命令变了一些。。功能好强的shell。。有些命令还不知道是做什么的。。可能是给其他构架的。。。。如 EFI。。


示例 grub2的配置文件




grub的配置文件
title arch linux
root (hd0,5)
kernel /boot/vmlinuz26 root=/dev/sda6 ro vga=792
initrd /boot/kernel26.img
###################################
新的grub2配置文件

menuentry “Arch Linux″ {
set root=(hd0,6)
linux /boot/vmlinuz26 root=/dev/sda6 ro vga=792
initrd /boot/kernel26.img
}
#################################


这里很像是某种脚本语言~~

设置root分区那个 是是一个变量了。。。。
kernel命令换成了linux。。。
适应grub2后发现 真的很好用~~


即使不小心将那啥重要的rootfs 给移动了。。。但只要硬盘上存在 那些核心模块( /boot/grub/*.mod  例如那个linux.mod 还有freebsd.mod ...另外一些用不到的mod。。efi.mod ...bios的机器自动载入 pc.mod) 并能够直接被回复模式的grub2读取。。。目前发现ext2 ext3 可以直接认识。。。就可以用insmod这个命令 指定地址安装。。。简直跟linux kernel一样。。。。

引导linux只需用一个 linux.mod就可以了。。。由于mbr很小~~容不下它。。所以一旦root分区找不到进入修复模式后 默认只开了个 grub shell用

里面有最基础的 ls lsmod insmod set unset 。。。dump。。只要ls 和lsmod 命令就搞定了。。


其他可以参考下这里http://linux.chinaitlab.com/administer/770545.html
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-26 23:31:01 | 显示全部楼层
Post by ifree;1953304
grub2 支持efi gpt分区了吗?


没试过~~但核心模块里 有apple hfs分区和 efi.mod
回复 支持 反对

使用道具 举报

发表于 2009-2-26 23:35:57 | 显示全部楼层
官方说 ext4 也能直接识认,http://ext4.wiki.kernel.org/index.php/Ext4_Howto

似乎应该要考虑换囗味了

还有一问,现在的 grub-0.97 如不打补丁,於纯 64 位系统全无用武之地,反而 lilo 却可以,未知 grub2 於纯 64 位系统下使用如何?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-26 23:50:20 | 显示全部楼层
。。。。。。。。甭提了。。。。。。。要不是amd64的问题我都不会去做小白鼠实验grub2.。。。。正是因为archlinux 64位版本。。我才第一次使用grub2.。。。

http://www.linuxsir.cn/bbs/showthread.php?t=343239 之前这个帖子我问过。。。好像没解决。。。但偶然发现用 硬盘安装的方式 在bugbox里 直接 pacman -S grub2 -r  /tmp/install  创建mtab fstab 以及必要的的设备文件 然后chroot进去 安装grub2 ,,,重启后发现。。grub2完全能识别64位的。。。。


然后过了几天发现。。。64位的 archlinux 连装个wine 都很困难 lib32啥的都装好了 就是不知怎样编译。。。。然后最终放弃了64位arch。。。。


前几天因为grub 搞vista+mac os+linux好难啊(grub 0.97 不认hfs 即使在其他分区引导tboot 也出现HFS+ ERROR进不去)。。。于是又想起了grub2。 发现 直接 chainloader  bootmgr 和 tboot 就能分别引导vista和mac os了。。。。
回复 支持 反对

使用道具 举报

发表于 2009-2-26 23:57:46 | 显示全部楼层
嘿嘿,当时你说搞不懂,现在应该明白我说什麽了吧?

关於 wine,一般 64 位系统要跑 32 位软件要 multilib 才行
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-2-27 00:02:50 | 显示全部楼层
LFS一次真的能让人学习到很多东西。。。。。。也是因为64位和32位的原因 发现自己的基础知识太少了。。。于是花时间阅读了 鸟哥的linux私房菜。。。以及花了2星期成功LFS了一次。。。感觉学习到了不少东西。。。但是现在还是有些问题不明白~~还要继续学习~~

当LFS做到第3遍。。终于启动看到了bash的时候。。。那心情激动的不得了~有空就 blfs。。。安装xorg等。。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表