Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102981
  • 博文数量: 42
  • 博客积分: 1445
  • 博客等级: 上尉
  • 技术积分: 380
  • 用 户 组: 普通用户
  • 注册时间: 2009-08-28 13:57
文章分类

全部博文(42)

文章存档

2010年(10)

2009年(32)

我的朋友

分类: LINUX

2010-01-07 13:13:03

假设Windows被安装在(hd0,0),则可以输入以下命令引导Windows引导程序:

rootnoverify (hd0,0)
chainloader +1
boot

上面是windows引导的的时候,至于有问题关于hd的值,详细请参考网上文章.很XX多


之前遇到了一个问题,外地网管不小心把linux服务器关掉了.然后启动失败,不是文件系统的错误,而是load error,一看就是引导器的问题,然后 就是手把手的....救援模式(用的是rh,老衲忘记了很多关于rh的东西)


chroot /mnt/sysimage 可以将根目录挂载到我们硬盘系统的根目录中去。

然后该干嘛干嘛
grub坏了 就重新安装

grub-install  --注意一个 ,你要确认好你的grub安装的分区,mbr 还是磁盘里,要搞清楚,

grub有2个文件,一个grub.conf 一个menu.list,2个都一样的,随便改那个都可以
title Fedora (2.6.31.5-127.fc12.i686.PAE)
        root (hd0,0)
        kernel /boot/vmlinuz-2.6.31.5-127.fc12.i686.PAE ro root=UUID=123af292-98f6-4f81-b744-c2a4b021e171  LANG=zh_CN.UTF-8 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
        initrd /boot/initramfs-2.6.31.5-127.fc12.i686.PAE.img

---
rhgb表示redhat graphics boot,就是会看到图片来代替启动过程中显示的文本信息,这些信息在启动后用dmesg也可以看到
quiet表示在启动过程中只有重要信息显示,类似硬件自检的消息不回显示
---

文件丢失就把备份文件 cp回来,

磁盘挂在出错 的就是fsck
fsck -t ext3 忘了,具体 看help或者man
不过single模式也可以处理


救援模式很好用,不过我还是觉得live好用,多准备些live U盘



转一个中文2000论坛的(很详细了,)
################## 
# GRUB菜单 # 
################## 
先来看一个例子,这是位于/boot/grub/目录下的menu.lst文件。 
此文件将在开机是产生一个菜单,包含有Debian linux,Windows2000,RedHat linux 和 Mandrake linux,共四个选择项。我一共分了8个区,一个fat16(0x6),一个ntfs(0x7),三个ext2fs分区 (0x83),一个swap分区(0x82)。ntfs用来装win2000,三个ext2fs装了三个linux,c盘fat16分区没有装任何东 西。 
#例子由此开始 

###################### 
# # 
# 一个GRUB configure 的例子 # 
# # 
###################### 

timeout 10 
default 2 


# --> Debian linux <--

title Debian linux
root (hd0,2)
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro
initrd /boot/initrd-2.2.18.gz


# --> Debian END <--

# --> Windows 菜单选项 <--

title Windows2000
root (hd0,0)
chainloader +1

# --> Winddows 结束 <--

# --> RedHat linux 菜单选项 <--

title RedHat linux
root (hd0,8)
chainloader +1 # 在硬盘主引导分区装了lilo,所以也用了chainloader。

# --> RedHat linux 结束 <--

# --> Mandrake linux 菜单选项 <--

title Mandrake linux
root (hd0,5)
kernel /boot/vmlinuz-2.4.3-20mdk root=/dev/hda6 ro
initrd /boot/initrd-2.4.3-20mdk.img

# --> Mandrake linux 结束 <--


#例子到此结束

以符号井"#"开头的行表示被注释掉,没有任何意义。

timeout表示默认等待的时间,这儿是10秒钟。超过10秒,用户还没有作出选择的话,系统将自动选择默认的操作系统。

默认的操作系统就是由default控制的。default后加一个数字n,表明是第n+1个。需要注意的是,GRUB中,计数是从0开始的,第 一个硬盘是hd0,第一个软驱是fd0,等等。所以,default 2 表示默认的操作系统在这儿是 Redhat linux。

接下来,正如你所想象的,title表示的是“Debian linux”菜单项。root (hd0,2)表示第一个硬盘,第三个分区。这儿的root 于linux的root分区及其不同,此root非彼root也!

在 Linux 中,当谈到 "root" 文件系统时,通常是指主 Linux 分区。但是,GRUB 有它自己的 root 分区定义。GRUB 的 root 分区是保存 Linux 内核的分区。这可能是您的正式 root 文件系统,也可能不是。我们讨论的是 GRUB,需要指定 GRUB 的 root 分区。进入 root 分区时,GRUB 将把这个分区安装成只读型,这样就可以从该分区中装入 Linux 内核。GRUB 的一个很“酷”的功能是它可以读取本机的 FAT、FFS、minix、ext2 和 ReiserFS 分区。

到目前为止,您可能会感到一点疑惑,因为 GRUB 所使用的硬盘/分区命名约定与 Linux 使用的命名约定不同。在 Linux 中,第一个硬盘的第五个分区称作 "hda5"。而 GRUB 把这个分区称作 "(hd0,4)"。GRUB 对硬盘和分区的编号都是从 0 开始计算。另外,硬盘和分区都用逗号分隔,整个表达式用括号括起。现在,可以发现如果要引导 Linux 硬盘 hda5,应输入 "root (hd0,4)"。

知道了内核在哪儿,还要具体指出哪个文件是内核文件,这就是kernel的工作。
kernel /boot/vmlinuz-2.2.18 root=/dev/hda3 ro说明/boot/vmlinuz-2.2.18 就是要载入的内核。后面的都是传递给内核的参数。root=/dev/hda3就是linux的硬盘分区表示法,ro是以readonly的意思。
initrd用来初始的linux image,并设置相应的参数。

是不是感觉很简单啊!再来看一看windows的定义段吧。
这里,我添加了一项来引导 Windows2000。要完成此操作,GRUB 使用了“链式装入器”(chainloader)。链式装入器从分区 (hd0,0) 的引导记录中装入 win2000 自己的引导装入器,然后引导它。这就是这种技术叫做链式装入的原因 -- 它创建了一个从引导装入器到另一个的链。这种链式装入技术可以用于引导任何版本的 DOS 或 Windows。

我的RedHat linux在硬盘主引导分区装了lilo,所以也用了chainloader。

GRUB的配置文件要简单就这么简单,如果你要更个性化一点,试一试把“color light-gray/blue ”加在default语句的下面,下一次启动GRUB时,看看有什么变化,再试一试“color light-blue/red",惊喜吗? 有趣吧!

######################
# GRUB的交互性 #
######################




GRUB 最好的优点之一就是其强健的设计 -- 在不断使用它时请别忘了这点。如果更新内核或更改它在磁盘上的位置,不必重新安装 GRUB。事实上,如有必要,只要更新 menu.lst 文件即可,一切将保持正常。

只有少数情况下,才需要将 GRUB 引导装入器重新安装到引导记录。首先,如果更改 GRUB root 分区的分区类型(例如,从 ext2 改成 ReiserFS),则需要重新安装。或者,如果更新 /boot/grub 中的 stage1 和 stage2 文件,由于它们来自更新版本的 GRUB,很有可能要重新安装引导装入器。其它情况下,可以不必理睬!

GRUB的最大的特点就是交互性特别强。在开机时,按一下“c”,将进入GRUB 控制台。显示如下:

GRUB version 0.5.96.1 (640K lower / 3072K upper memory)

[ Minimal BASH-like line editing is supported. For the first word, TAB
lists possible command completions. Anywhere else TAB lists the possible
completions of a device/filename. ]

grub> 

欢迎使用 GRUB 控制台。现在,再研究命令: 
我将通过GRUB 控制台绕过lilo来启动RedHat linux, 

grub> root (h 

现在,按一次 Tab 键。如果系统中有多个硬盘,GRUB 将显示可能完成的列表,从 "hd0" 开始。如果只有一个硬盘,GRUB 将插 入 "hd0,"。如果有多个硬盘,继续进行,在 ("hd2") 中输入名称并在名称后紧跟着输入逗号,但不要按 Enter 键。部分完成 的 root 命令看起来如下: 

grub> root (hd0, 

现在,继续操作,再按一次 Tab 键。GRUB 将显示特定硬盘上所有分区的列表,以及它们的文件系统类型。在我的系统中,按 Tab 键时得到以下列表: 

grub> root (hd0, (tab,按tab一下键) 
Possible partitions are: 
Partition num: 0, Filesystem type is fat, partition type 0x6 
Partition num: 2, Filesystem type is ext2fs, partition type 0x83 
Partition num: 4, Filesystem type unknown, partition type 0x7 
Partition num: 5, Filesystem type is ext2fs, partition type 0x83 
Partition num: 6, Filesystem type is fat, partition type 0xb 
Partition num: 7, Filesystem type is fat, partition type 0xb 
Partition num: 8, Filesystem type is ext2fs, partition type 0x83 
Partition num: 9, Filesystem type unknown, partition type 0x82 

如您所见,GRUB 的交互式硬盘和分区名称实现功能非常有条理。这些,只需要好好理解 GRUB 新奇的硬盘和分区命名语法,然后就可以继续操作了 
grub> root (hd0,8) 
现在已安装了 root 文件系统,到装入内核的时候了 

grub> kernel /boot/vmlinuz-2.4.2 root=/dev/hda5 ro 
[Linux-bzImage, setup=0x1200, size=0xe1a30] 

您已经安装了 root 文件系统并装入了内核。现在,可以引导了。只要输入 "boot",Linux 引导过程就将开始。是不是很cool啊,GRUB的menu.lst更像一个linux下的脚本程序。 







阅读(1383) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~