⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 系统引导管理器grub,为初学者指南 linuxsir_org.htm

📁 linuxSir 网站的精华文章
💻 HTM
📖 第 1 页 / 共 5 页
字号:
      来补齐;<BR>grub&gt; initrd 
      /boot/initrd-2.6.11-1.1369_FC4.img<BR>&nbsp;&nbsp;&nbsp;[Linux-initrd @ 
      0x2e1000, 0x10e685 bytes]</CODE></DIV>
      <P></P>
      <P>如果/boot是独立的一个分区,应该是如下样子的语法;比如下面的;</P>
      <P>
      <DIV class=codeblock><CODE>grub&gt; initrd /initrd在这里tab 来补齐;<BR>grub&gt; 
      initrd /initrd-2.6.11-1.1369_FC4.img<BR>&nbsp;&nbsp;&nbsp;[Linux-initrd @ 
      0x2e1000, 0x10e685 bytes]</CODE></DIV><BR><FONT id=5.27 
      size=2><B><BR>7)boot 引导系统;<BR></B></FONT>
      <P></P>
      <P>
      <DIV class=codeblock><CODE>grub&gt;boot</CODE></DIV>
      <P></P>
      <P>前面的几个步骤都弄好 。就进入引导;尝试一下就知道了。。<BR><FONT id=5.28 
      size=2><B><BR>8)引导Linux系统实例全程回放;<BR></B></FONT></P>
      <P><B>实例:</B>/boot和Linux的/处于同一个硬盘分区;<BR>
      <DIV class=codeblock><CODE>grub&gt; cat (hd0,6)/etc/fstab<BR># This file 
      is edited by fstab-sync - see 'man fstab-sync' for details<BR>LABEL=/ / 
      ext3 defaults 1 1<BR>/dev/devpts /dev/pts devpts gid=5,mode=620 0 
      0<BR>/dev/shm /dev/shm tmpfs defaults 0 0<BR>/dev/proc /proc proc defaults 
      0 0<BR>/dev/sys /sys sysfs defaults 0 0<BR>LABEL=SWAP-hda1 swap swap 
      defaults 0 0<BR>/dev/hdc /media/cdrecorder auto 
      pamconsole,exec,noauto,managed 0 0<BR>grub&gt; root 
      (hd0,6)<BR>&nbsp;Filesystem type is ext2fs, partition type 
      0x83<BR>grub&gt; kernel /boot/在这里按tab补齐,全列出/boot所有的文件;<BR>&nbsp;Possible 
      files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 
      config-2.6.11-1.1369_FC4 
      vmlinuz-2.6.11-1.1369_FC4<BR>&nbsp;memtest86+-1.55.1 xen-syms 
      xen.gz<BR>grub&gt; kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro 
      root=/dev/hda7 注:输入<BR>&nbsp;&nbsp;&nbsp;[Linux-bzImage, setup=0x1e00, 
      size=0x18e473]<BR>grub&gt; initrd /boot/在这里按tab补齐<BR>&nbsp;Possible files 
      are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 
      config-2.6.11-1.1369_FC4 
      vmlinuz-2.6.11-1.1369_FC4<BR>&nbsp;memtest86+-1.55.1 xen-syms 
      xen.gz<BR>grub&gt; initrd /boot/initrd-2.6.11-1.1369_FC4.img 
      注;输入intrd文件名的全名;<BR>&nbsp;&nbsp;&nbsp;[Linux-initrd @ 0x2e1000, 0x10e685 
      bytes]<BR>grub&gt; boot</CODE></DIV>
      <P></P>
      <P>我们指定Linux的根时,可以用cat出来的fstab的内容中Linux的/分区文件系统标签来替代;也就是kernel 那行中 
      root=/dev/hd[a-z]X; </P>
      <P>
      <DIV class=codeblock><CODE>grub&gt; cat (hd0,6)/etc/fstab<BR># This file 
      is edited by fstab-sync - see 'man fstab-sync' for details<BR>LABEL=/ / 
      ext3 defaults 1 1<BR>/dev/devpts /dev/pts devpts gid=5,mode=620 0 
      0<BR>/dev/shm /dev/shm tmpfs defaults 0 0<BR>/dev/proc /proc proc defaults 
      0 0<BR>/dev/sys /sys sysfs defaults 0 0<BR>LABEL=SWAP-hda1 swap swap 
      defaults 0 0<BR>/dev/hdc /media/cdrecorder auto 
      pamconsole,exec,noauto,managed 0 0<BR>grub&gt; root 
      (hd0,6)<BR>&nbsp;Filesystem type is ext2fs, partition type 
      0x83<BR>grub&gt; kernel /boot/在这里按tab补齐,全列出/boot所有的文件;<BR>&nbsp;Possible 
      files are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 
      config-2.6.11-1.1369_FC4 
      vmlinuz-2.6.11-1.1369_FC4<BR>&nbsp;memtest86+-1.55.1 xen-syms 
      xen.gz<BR>grub&gt; kernel /boot/vmlinuz-2.6.11-1.1369_FC4 ro 
      root=LABEL=/<BR>&nbsp;&nbsp;&nbsp;[Linux-bzImage, setup=0x1e00, 
      size=0x18e473]<BR>grub&gt; initrd /boot/在这里按tab补齐<BR>&nbsp;Possible files 
      are: grub initrd-2.6.11-1.1369_FC4.img System.map-2.6.11-1.1369_FC4 
      config-2.6.11-1.1369_FC4 vmlinuz-2.6.11-1.1369_FC4 
      grubBAK<BR>&nbsp;memtest86+-1.55.1 xen-syms xen.gz<BR>grub&gt; initrd 
      /boot/initrd-2.6.11-1.1369_FC4.img 
      注;输入intrd文件名的全名;<BR>&nbsp;&nbsp;&nbsp;[Linux-initrd @ 0x2e1000, 0x10e685 
      bytes]<BR>grub&gt; boot</CODE></DIV>
      <P></P>
      <P>如果是/boot和Linux的根分区不在同一个分区,要把kernel和initrd 指令中的/boot去掉,也就是/vmlinuzMMMMMM 
      或 /initrdNNNN</P>
      <P>也可以不用root (hd[0-n]来指定/boot所在分区,要在kernel 和initrd 
      中指定;比如Linux的/根所位于的分区和/boot所位于的分区都是(hd0,6),并且我们cat出来的/etc/fstab是Linux的/根分区的文件系统的标签为LABEL=/,引导操作系统的例子如下;<BR>
      <DIV class=codeblock><CODE>grub&gt;kernel 
      (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/<BR>grub&gt;initrd 
      (hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img<BR>grub&gt;boot</CODE></DIV>
      <P></P>
      <P>或</P>
      <P>
      <DIV class=codeblock><CODE>grub&gt;kernel 
      (hd0,6)/boot/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7<BR>grub&gt;initrd 
      (hd0,6)/boot/initrd-2.6.11-1.1369_FC4.img<BR>grub&gt;boot</CODE></DIV>
      <P></P>
      <P>如果/boot位于 /dev/hda6,也就是(hd0,5),Linux的根/位于分区/dev/hda7,并且我们cat 
      出来的/etc/fstab 中/分区的标签为 LABEL=/。下面的两种方法都可以引导;</P>
      <P>
      <DIV class=codeblock><CODE>grub&gt;kernel 
      (hd0,5)/vmlinuz-2.6.11-1.1369_FC4 ro root=LABEL=/<BR>grub&gt;initrd 
      (hd0,5)/initrd-2.6.11-1.1369_FC4.img<BR>grub&gt;boot</CODE></DIV>
      <P></P>
      <P>或</P>
      <P>
      <DIV class=codeblock><CODE>grub&gt;kernel 
      (hd0,5)/vmlinuz-2.6.11-1.1369_FC4 ro root=/dev/hda7<BR>grub&gt;initrd 
      (hd0,5)/initrd-2.6.11-1.1369_FC4.img<BR>grub&gt;boot</CODE></DIV><BR><FONT 
      id=6 size=4><B><BR>六、通过GRUB引导Windows操作系统;<BR></B></FONT><BR><FONT id=6.1 
      size=3><B><BR>1、通过编辑 menu.lst 来引导Windows 系统;<BR></B></FONT>
      <P></P>
      <P>如果您的Windows所处于的分区在(hd0,0),可以在menu.lst 加如下的一段就能引导起来了;<BR>
      <DIV class=codeblock><CODE>title 
      WinXp<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rootnoverify 
      (hd0,0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chainloader 
      +1</CODE></DIV>
      <P></P>
      <P>如果您的机器有两块硬盘,而Windows 位于第二个硬盘的第一个分区,也就是(hd1,0)</P>
      <P>您可以用grub的map来指令来操作把两块硬盘的序列对调,这样就不用在BIOS中设置了;在menu.lst中加如下的内容,比如下面的;</P>
      <P>
      <DIV class=codeblock><CODE>title 
      WinXp<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map (hd0) 
      (hd1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map (hd1) 
      (hd0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rootnoverify 
      (hd0,0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chainloader 
      +1<BR>makeactive</CODE></DIV>
      <P></P>
      <P>如果Windows的分区不位于硬盘的第一个分区怎么办呢?比如在(hd0,2);</P>
      <P>这个也好办吧,把rootnoverify 这行的(hd0,0)改为 (hd0,2)</P>
      <P>
      <DIV class=codeblock><CODE>title 
      WinXp<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rootnoverify 
      (hd0,2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chainloader 
      +1<BR>makeactive</CODE></DIV>
      <P></P>
      <P>如果Windows的在第二个硬盘的某个分区,比如说是位于(hd1,2),则要用到map指令;</P>
      <P>
      <DIV class=codeblock><CODE>title 
      WinXp<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map (hd0) 
      (hd1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;map (hd1) 
      (hd0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rootnoverify 
      (hd1,2)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chainloader 
      +1<BR>makeactive</CODE></DIV>
      <P></P>
      <P>如果有多个Windows 系统,怎么才能引导出来呢?应该用hide 和unhide指令操作;比如我们安装了两个Windows 
      ,一个是位于(hd0,0)的windows 98 ,另一个是安装的是位于(hd0,1)的WindowsXP;这时我们就要用到hide指令了;</P>
      <P>
      <DIV class=codeblock><CODE>title 
      Win98<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unhide 
      (hd0,0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hide 
      (hd0,1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rootnoverify 
      (hd0,0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chainloader 
      +1<BR>makeactive<BR>title 
      WinXP<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;unhide 
      (hd0,1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hide 
      (hd0,0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rootnoverify 
      (hd0,1)<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;chainloader 
      +1<BR>makeactive</CODE></DIV><BR><FONT id=6.2 
      size=3><B><BR>2、通过GRUB指令来引导Windows ;<BR></B></FONT>
      <P></P>
      <P>其实我们会写menu.lst了,在menu.lst中的除了title外,都是一条条指令;如果我们启动Windows 
      ,只是输入指令就行了;</P>
      <P>比如 Windows的分区在 (hd0,0),我们在开机后,按ctrl+c ,进入GRUB的命令模式;就可以用下面的</P>
      <P>
      <DIV class=codeblock><CODE>grub&gt; rootnoverify (hd0,0)<BR>grub&gt; 
      chainloader +1<BR>grub&gt; boot</CODE></DIV>
      <P></P>
      <P>其它同理... ...<BR><FONT id=7 
      size=4><B><BR>七、GRUB丢失或损坏的应对策略;<BR></B></FONT></P>
      <P>如果GRUB是Linux版本才出会这样的问题;WINGRUB可以不写在MBR上;所以不会出现这样的问题。WINGRUB用起来比较简单。menu.lst 
      和命令行的用法和Linux版本的GRUB是一样的;</P>
      <P><FONT id=7.1 
      size=3><B><BR>1、由于重新安装Windows或其它未知原因而导致GRUB的丢失;<BR></B></FONT><BR>您可以通过系统安装盘、livecd进入修复模式;</P>
      <P><B>请参考:</B><A href="http://www.linuxsir.org/main/?q=node/110">《Linux 
      系统的单用户模式、修复模式、跨控制台登录在系统修复中的运用》</A></P>
      <P><B>首先:</B>您根据前面所说grub-install来安装GRUB到/boot所在的分区;要仔细看文档,/boot是不是处于一个独立的分区是重要的,执行的命令也不同;</P>
      <P><B>其次:</B>要执行grub ,然后通过 root (hd[0-n],y)来指定/boot所位于的分区,然后接着执行 setup 
      (hd0),这样就写入MBR了,比如下面的例子;<BR>
      <DIV class=codeblock><CODE>grub&gt;root (hd0,6)<BR>grub&gt;setup 
      (hd0)<BR>grub&gt;quit</CODE></DIV><BR>重新引导就会再次出现MBR的菜单了或命令行的提示符了;
      <P></P>
      <P><FONT id=7.2 
      size=3><B><BR>2、如果出现GRUB提示符,而不出现GRUB的菜单,如何引导系统;<BR></B></FONT></P>
      <P>存在的问题可能是/boot/grub/menu.lst丢失,要自己写一个才行;您可以用命令行来启动系统,进入系统后写一写menu.lst就OK了。前面已经谈过了;</P>
      <P>写好后还要建一个grub.conf的链接,如下:</P>
      <P>
      <DIV class=codeblock><CODE>[root@localhost ~]# cd 
      /boot/grub<BR>[root@localhost grub]# ln -s menu.lst grub.conf</CODE></DIV>
      <P></P>
      <P><FONT id=8 size=4><B><BR>八、关于GRUB的未尽事宜;<BR></B></FONT></P>
      <P>GRUB有很多内容,比如对BSD的引导,还有一些其它指令的用法,我并没有在本文提到;主要我目前还未用到,如果您需要了解更多,请查看 <A 
      href="http://www.linuxsir.org/main/?q=node/123">《GNU GRUB 手册和FAQ》</A></P>
      <P><FONT id=9 size=4><B><BR>九、关于本文;<BR></B></FONT></P>
      <P>本文前后写了三四天,中间发现并不能把Linux设备的两种表现形式说的清楚,于是被迫写了<A 
      href="http://www.linuxsir.org/main/?q=node/127">《在Linux系统中存储设备的两种表示方法》</A>;由于没有BSD系统,所以没有写关于BSD的引导;如果正在用BSD的弟兄如果有时间不妨写一写;写的时候注意文档的结构,这样方便大家的阅读; 
      </P>
      <P>GRUB有很多内容,需要大家慢慢的学习和研究;有的弟兄抑制GRUB,说不如NTLOADER,其实这是错误的;如果您想学习和使用Linux就得学习和适应Linux的操作;习惯成自然,如果您抵制学习Linux,那可能您永远会说“Linux不如Windows”;</P>
      <P><FONT id=10 size=4><B><BR>十、参考文档;<BR></B></FONT></P>
      <P><A href="http://www.linuxsir.org/main/?q=node/123">《GNU GRUB 
      手册和FAQ》</A></P>
      <P><FONT id=11 size=4><B><BR>十一、相关文档;<BR></B></FONT><BR><A 
      href="http://www.linuxsir.org/main/?q=node/37">《以WINGRUB

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -