硬盘安装CentOS要注意的地方以及grub方法总汇。
工具:grub for dos
系统:iso:centos5.6
Windows
下的
C
盘为
fat32
(因为硬盘安装
centos
要求
iso
所在的盘为
fat32
,我把
iso
放到了
C
盘)
-------------------------------------------------------------------------------------
第一步:
以本系统为例,sata 硬盘500G
分为C为主分区(hd0,0),还有D(hd0,4) E(hd0,5) F(hd0,6) G(hd0,7)四个逻辑盘,共用了440G,剩余未分配60G为centos使用。
1. 先安装xp。(不解释)
2. 下载grub for dos ,提起其中文件grldr 和menu.lst到C:盘根目录。
提起centos下的isolinux文件夹下的vmlinuz和initrd.img 到C:盘根目录。
3. 进入C盘打开menu.lst添加:
Title install centos
Root (hd0,0)
Kernel /vmlinuz noapic
Initrd /initrd.ing
4. 修改C:\boot.ini 属性为可读并添加:
5. C:/grldr=”grub for dos”
6. 重启XP。
7. 此时看到ntloader 引导的选择画面:
选择grub for dos
选择intstall centos
选中文-----键盘usa--------/dev/sda1(iso存放的位置,一定要是fat32格式的盘符)
安装开始了。安装到一半时候Sata安装不下去,提示可以忽略noapic,我的操作都带有此参数才可以启动内核,要不然没办法进行,你可以自己根据情况开看,网上也没有明确的回答,如果也出现这种情况,可以在内核后面添加noapic acpi=off)
--------------------------------------------------------------------------------------------------
第二步:
Centos进行到了安装gurb这一步骤,有三个方法可以安装,学会了的话基本grub原理就明白的差不多了。:
可以安装到mb。
解释安装后的运行过程:
Grub装入到mbr(此时xp的mbr已经被centos的mbr修改覆盖):
首先开始找mbr,mbr执行grub引导将(将grub安装到mbr或者处于激活状态的主分区)
此时出现grub引导画面,可以选择直接进入centos还是进入Windows,Windows由grub来加载ntloader(通过chainloader+1)实现ntloader的引导。
具体流程:
开机-----biso自检---------加载硬盘mbr-------------硬盘mbr在活动主分区根目录寻找并且加载grub-----grub加载配置菜单/boot/grub/menu.lst配置文件-------选择进入系统 ---------
可以直接进入linux,或者选择ntloader进入xp。
可以安装到超级块。
解释安装后的运行过程:
Grub装入到超级块,也就是/boot所在的分区deb/sda9中,经过尝试你会发现他居然是直接进入ntloader,压根没有出现linux的选项。想想为什么?
因为Windows xp/2000/2003都是以ntloader为主引导器。而我们将grub安装到了超级块也就是并没有安装到活动目录所在的mbr中,所以自然不会覆盖了ntloader。
具体流程:
开机-----biso自检---------加载硬盘mbr-------------硬盘mbr在活动主分区根目录寻找并且加载ntloader-----ntloader加载配置文件boot.ini--------选择进入系统-------可以直接进入xp.画面或者选择另一选项进入grub,grub加载配置菜单/boot/grub/menu.lst配置文件-------进入了centos。
可以直接进入linux,或者选择ntloader进入xp。
关键是怎么让ntloader出现选择菜单并可以加载grub引导程序。可以把/boot挂载的grub引导程序前512个字节导出到xp并添加到ntloader中不就可以了。
可以通过grub for dos进入命令行加载(此过程是直接读取内核,不牵涉任何的引导程式):。
>cat (hd0,9)/etc/fstab ##查看/目录下的挂载root=LABEL等于多少
>cat (hd0,8)/grub/grb.conf
>root (hd0,8) ## grub所安装的/boot分区
>kernel /vm(tab补全)ro root=.LABEL=/ noapic
>initrd /initrd(tab补全)。img
>boot
进入centos系统。
下一步是将grub引导程式装配到ntloader中。
#mount –t vfat /dev/sda1 /mnt 将xp下的C盘挂载到mnt目录
#dd if=/dev/sda9 of=/mnt/linux.ini bs=512 count=1 将boot目录下的前512个字节复制到了挂载目录中的也就是xp下C盘下新创建的文件linux.ini文件中。
推出centos
进入xp系统
在C:\boot.ini 中加入
C:\linux.ini=centos
重启。
此时就已经完美的实现了上面的开机过程。
可以现在不让机器安装,自己安装到mbr或者超级块。
选择不安装任何引导程序。
安装完重启发现啥变化也没有,这就对了嘛,因为这个系统就没有引导程序怎么会自动引导嘛。
可以通过grub for dos进入命令行加载(此过程是直接读取内核,不牵涉任何的引导程式):。
>cat (hd0,9)/etc/fstab ##查看/目录下的挂载root=LABEL等于多少
>cat (hd0,8)/grub/grb.conf
>root (hd0,8) ## grub所安装的/boot分区
>kernel /vm(tab补全)ro root=.LABEL=/ noapic
>initrd /initrd(tab补全)。img
>boot
进入centos系统。
下面就是手动安装grub
三个步骤:
1. 安装软件包。(cenos都已经在安装的时候默认安装了,可以自己到软件管理去查一下)
其实在/boot/grub目录下只有splash.xpm.gz背景。
2. Grub配置过程的安装。(复制了stage2,以及要自己创建的meun.lst,meun.lst为grub.conf的软连接,这一步骤的作用就是把一些文件复制到/boot/grub下,此操作会默认安装到路径/boot/grub 下,也就是说,在/boot独立的情况下,是不需要携带参数的)
语法:#grub-install [--root-directory=DIR] 设备
/boot独立情况下(我的独立): #grub-install /dev/sda9
/boot不独立的情况下 : #grub-install
执行完之后,其实我特意注意了一下,在自动安装grub到mbr的情况下,grub文件有16个。而这样安装的话 ,缺少了grub.conf和它的软连接menu.lst。所以,缺少他们自然是不能运行起来gurb引导了。下面的工作就是自己创建grub.conf 和软连接menu.lst并添加内容。
#touch /boot/grub/grub.conf
#ln -s grub.conf menu.lst
用vim编辑menu.lst或者进入目录用记事本打开直接写入。
#vim /boot/grub/menu.lst(下面又要区分/boot是否独立的情况了)
/boot独立时(也就是/boot为/dev/sda9,根目录为/deb/sda10):
default=0
timeout=5
splashp_w_picpath=(hd0,8)/grub/splash.xpm.gz
hiddenmenu
title CentOS
root (hd0,8)
kernel /vm(版本号)ro root=.LABEL=/ noapic
initrd /initrd(版本号).img
黑色部分等同于一下黑色部分:
Kernel /(hd0,8)/vm(版本号)ro root=.LABEL=/ noapic
Initrd /(hd0,8)/initrd(版本号).img
title windows XP
rootnoverify (hd0,0) //(hd0,0)指的是C盘的超级块。
Chainloader +1
/boot不独立时(在根目录下,也就是/boot在根分区/dev/sda9目录中):
default=0
timeout=5
splashp_w_picpath=(hd0,8)/grub/splash.xpm.gz
hiddenmenu
title CentOS
root (hd0,8)
kernel /boot/vm(版本号)ro root=.LABEL=/ noapic
initrd /bootinitrd(版本号).img
黑色部分等同于一下黑色部分:
Kernel /(hd0,8)/boot/vm(版本号)ro root=.LABEL=/ noapic
Initrd /(hd0,8)/boot/initrd(版本号).img
title windows XP
rootnoverify (hd0,0) //(hd0,0)指的是C盘的超级块。
Chainloader +1
3. Grub主程式安装到mbr或者boot secor(stage1必须安装到开机区(此过程也要区分/boot是否独立)
/boot独立的时候:
#grub
>root (hd0,8)//选择/boot那个分区
>find /grub/stage1 // 查看是否有stage1
>find /vmlium(tab补全)
/boot不独立时(在根目录下,也就是/boot在根分区/dev/sda9目录中):
#grub
>root (hd0,8)//选择/boot那个分区
>find /boot/grub/stage1 // 查看是否有stage1
>find /boot/vmlium(tab补全)
(以下两步为上面两种情况的共用部分)
>setup (hd0) //安装到mbr (此时开机就可以看到grub了)
>setup(hd0,8) //安装到了超级块中,然后也就是按照上面我们已经讲过的,重复贴出:
让ntloader出现选择菜单并可以加载grub引导程序。可以把/boot挂载的grub引导程序前512个字节导出到xp并添加到ntloader中。
可以通过grub for dos进入命令行加载(此过程是直接读取内核,不牵涉任何的引导程式):。
>cat (hd0,9)/etc/fstab ##查看/目录下的挂载root=LABEL=多少。(一定要看一下)
>cat (hd0,8)/grub/grb.conf
>root (hd0,8) ## grub所安装的/boot分区
>kernel /vm(tab补全)ro root=.LABEL=/ noapic
>initrd /initrd(tab补全)。img
>boot
进入centos系统。
下一步是将grub引导程式装配到ntloader中。
#mount –t vfat /dev/sda1 /mnt 将xp下的C盘挂载到mnt目录
#dd if=/dev/sda9 of=/mnt/linux.ini bs=512 count=1 将boot目录下的前512个字节复制到了挂载目录中的也就是xp下C盘下新创建的文件linux.ini文件中。
推出centos
进入xp系统
在C:\boot.ini 中加入
C:\linux.ini=centos
重启。
此时就已经完美的实现了上面的开机过程。
------------------------------------------------------------------------------------------------
此时就已经结束了所有的grub安装,肯定有细节漏了,并且有说错的地方,还望指出。共同学习。谢谢。
转载于:https://blog.51cto.com/ranranaiwen/682815