关于多启动菜单的修复 |
|
精华序号:109
来自论坛:小熊在线 《软件论坛》
内容说明:·
multi(0)disk(0)rdisk(0)partition(1)是第1个硬盘第1个分区而不是第2个分区
·
我忘记“par
- 关于98/XP/2K的多启动菜单修复(LINUX不在本讨论范围)(1073字) 不是蜗牛 (136990)于2002/09/05(11:20:56)..
修复多启动,不是一个BOOT.INI就能解决~~~~~~
·
要满足以下条件:
1、引导盘(通常是C盘)不能是NTFS,因为98的Loader一定要放在C盘,98又不能识别NTFS
2、引导盘有98的Loader(引导扇区镜像),即BOOTSECT.DOS这个文件
3、引导盘有XP/2K的Loader,即“NTLDR”这个文件
4、设置正确的BOOT.INI文件。这个文件的作用是指出各操作系统的安装位置及启动参数,以及默认启动系统、默认等待时间
·
以【无漏果】朋友的BOOT.INI为例分析:(“【……】”中的内容是我加上去的)
[boot loader] 【基本参数段】
timeout=4 【这句话的意思是:默认等待4秒】
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS 【这句话的意思是:默认的操作系统安装在第1个硬盘第2个分区的/WINDOWS目录下】
[operating systems] 【操作系统指引段】
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Microsoft Windows XP Professional" /fastdetect 【这句话的意思是:多选列表的第一个操作系统安装在第1个硬盘第2个分区的/WINDOWS目录下,在列表中显示的名字叫"Microsoft Windows XP Professional"(可以随便改的,比如改成 WIN 2002),启动参数是“/fastdetect”(快速检测,可以改成“/alldetect”“/nodetect”我为了加快启动速度,用后者) 】
C:\="Microsoft Windows" 【这句话的意思是:多选列表的第二个操作系统LOADER是C盘根目录下BOOTSECT.DOS这个文件,列表中显示的操作系统名字是"Microsoft Windows"(可以自己改,比如“WIN99、WIN3000”之类的),没有启动参数】
·
如果BOOT.INI损坏了我们可以自己编一个(当然用BOOTFIX命令自动生成也行)
如果NTLDR坏了,可以在XP/2K安装光盘上找到
如果WIN9X的BOOTSECT.DOS坏了,就要重新镜像一个
·
建议大家备份好这几个文件
·
如果引导盘(通常是C盘)弄成NTFS了。噢,98读不了LOADER了,黑屏没反应了。改回FAT吧,要么放弃98
·
我装XP/98双启动,又想把XP放在靠前的分区(速度比较快),所以用了一个很笨的办法:
C盘格成FAT,很小,刚好放全部的LOADER和公用的虚拟内存交换文件(这个文件使用频率最高,最好放在最快的分区)
D盘NTFS装XP
E盘FAT32装98
·
我的安装循序是【用XP安装盘启动】》【进入RC模式】》【分区】》【格式化C为FAT】》【格式化D为NTFS】》【格式化E为FAT32】》【退出】》【安装98在D盘(实际上在E盘,因为98看不到D盘,以为自己装在D)】》【安装XP在D】》【分别优化两个系统,将XP和98的虚拟内存交换文件设置在C盘,固定尺寸,共用一个文件名】
- 抱歉,严重错误~~~~~~~~(85字) 不是蜗牛 (137010)于2002/09/05(11:35:05)..
·
multi(0)disk(0)rdisk(0)partition(1)是第1个硬盘第1个分区而不是第2个分区
·
我忘记“partition”是从1开始数的而不是从0开始数,其他都是从0开始数~~~~~
- 好~~~(空) 死林法师 (137005)于2002/09/05(11:30:39)..
- ◎ 把LINUX的也贴出来吧。(空) lynxjack (136996)于2002/09/05(11:22:08)..
- 还有这个(1128字) wtchuanhua (137185)于2002/09/05(17:32:08)..
●恢复被覆盖的MBR(主引导扇区)的Linux引导程序LILO
如果LILO安装在MBR,那么先装Linux再安装Windows,LILO就会被覆盖,这时我们将无法从硬盘引导Linux,怎么办?我们可以启动到Windows命令行模式,从Linux光盘上拷贝loadlin.exe和vmlinuz两个文件到Windows分区,然后执行loadlin vmlinuz root=/dev/had? rw。这条命令的作用是从指定的分区启动Linux,并将根分区(1)设为读写模式,这样就可以修改Linux的大部分设置或者恢复LILO。要注意的是这种情况启动的Linux并不完整,如:MSDOS、VFAT文件系统的支持、网络等都无法使用,不过没关系,只要能这样启动,我们可以利用mkbootdisk来创建Linux启动盘,用这张启动盘启动Linux,就能完全使用Linux了。启动Linux以后,只要将/etc/lilo.conf文件的第一项boot=/dev/hda?改为boot=/dev/hda,然后执行lilo就能恢复从MBR启动Linux。
配置文件一览表 文件位置及名称
作用
/etc/rc.d/rc.sysinit
系统启动时的公用服务配置
/etc/rc.d/rc.local
系统启动时的本地服务配置
/etc/bashrc、/etc/profile
bash shell的公用配置
/home/username/.bashrc
各用户私人bash shell配置
/etc/securetty
终端安全设置
/etc/hosts
主机名与ip地址的对应文件
/etc/resolv.conf
dns服务器配置
/etc/squid.conf或/etc/squid/squid.conf
squid代理服务器软件配置
/etc/smb.conf或/etc/samba/smb.conf
基于smb的网上邻居配置
/etc/dhcpd.conf
linux下的dhcp服务器配置文件
/etc/filesystems
系统支持的文件系统列表
/etc/fstab
当前系统中已激活分区的信息
/etc/host.conf
指定系统搜索dns记录的配置文件
/etc/lilo.conf
启动程序lilo的配置文件
Linux系统的大部分控制都是基于配置文件的,了解这些配置文件能更有利于使用Linux。
●将Linux加入到Win NT/2000的启动选单中
Linux的启动选单不错,可惜不能显示中文,而且不能选择启动NT还是Win 98,所以我认为启动选单还是用NT系列的好。其实做起来很简单,安装完所有Windows系列操作系统后再装Linux,并在安装时选择将LILO安装到Linux所在的分区而非MBR,然后利用启动盘启动Linux,将Windows分区mount为/mnt/dos;然后执行dd if=/dev/hda? bs=512 count=1 of=/mnt/dos/ bootsect.lin,这样在Windows分区就有了一个bootsect.lin文件,它记录了Linux分区的启动信息,然后在Windows NT的启动配置文件boot.ini中加入C:BOOTSECT.LIN = "红帽子Linux 7.0",再启动电脑的时候,我们发现,在Windows NT启动选单中多了“红帽子Linux 7.0”这个选项,选择它就能启动我们的Linux。需要注意的是NT在启动时仍然只识别8.3格式的文件,所以不要把bootsect.lin改为长文件名。
- 看这里~~~~~~~~~~~~~~~(1680字) wtchuanhua (137176)于2002/09/05(17:13:50)..
备份和修复Linux LILO指南
2002-06-28 04:48
发布者:cjahnny 阅读次数:923
一. 本文目的
本文旨在如何给工作的系统做LILO和内核的软盘备份,因为大多数Linux服务器使用LILO进行引导,同时也给出紧急修复办法。
二. 测试环境
Redhat Linux ,IDE和SCSI启动硬盘。
三. 备份措施
当我们设置完新的服务器后,除了常规的服务器重要配置文件和系统备份之外,最好也要做LILO和内核的软盘备份,万一由于某种原因导致LILO不能引导系统。
1. 第一种方法
适用范围: 自己编译的内核,所有的支持模块已经编译进内核,如果有SCSI硬盘,必须编译进SCSI支持进内 核,也就是说内核已经包含了所有引导需要的东西。
步骤:
格式化一张空白软盘,不要生成文件系统,直接写内核到软盘,然后改变内核文件中的根文件系统分区定义
fdformat /dev/fd0h1440
dd if=/boot/vmlinuz of=/dev/fd0 (用你自己的内核文件名替代vmlinuz)
rdev /dev/fd0 /dev/sda3 (用你的根分区设备名称替代/dev/sda3)
rdev -R /dev/fd0 1 (安装根文件系统成只读模式)
作用: 这样当系统LILO失败时,可用该软盘引导系统且安装硬盘根文件系统。
2. 第二种方法
适用范围: 内核需要一系列模块帮助引导,如SCSI硬盘驱动程序,则需要用下面的方法生成带LILO的引导软盘
步骤: 放一张新的软盘,不要格式化和分区,直接用mkbootdisk创建引导盘
mkbootdisk --device /dev/fd0 2.2.12-20 (用你的内核版本代替2.2.12-20, 可用uname -a查看)
3. 第三种方法
适用范围: mkbootdisk命令不可用,或者无论什么理由你想手动创建一张带LILO的引导软盘。
步骤:
fdformat /dev/fd0h1440 (低级格式化软盘)
/sbin/mkfs.minix /dev/fd0 1440 (在软盘上创建minix文件系统)
/bin/mount /dev/fd0 /mnt/floppy (安装软盘到/mnt/floppy目录)
cd /mnt/floppy
mkdir boot etc dev
cp -a /boot/vmlinuz /boot/initrd.img /boot/boot.b boot/
注:用你的内核文件名代替vmlinuz
用你的initrd映像文件名代替initrd.img
cp -a /dev/fd0 /dev/null /dev/zero /dev/hd[abcd]* /dev/sd[abcd]* dev/
注: 如果你没有SCSI设备,可不用拷贝/dev/sd[abcd]*
创建/mnt/floppy/etc/lilo.conf如下
boot=/dev/fd0
read-only
prompt
image = /boot/vmlinuz
initrd=/boot/initrd.img
root = /dev/sda1 # 把/dev/sda1换成你的根文件系统设备名称
label = linux
最后运行 lilo -r /mnt/floppy 在软盘上安装LILO (将自动生成/boot/map文件包括内 核的物理映像位置) 。
4. 剖析initrd.img
如果你是用SCSI硬盘启动,内核必须能装入SCSI驱动程序才能转入你的硬盘根文件系统引导系统。
如果你的内核没有编译进SCSI驱动程序,则需要用mkinitrd创建RAM驱动映像 想知道你的initrd.img中包含了哪些驱动程序吗?
cat initrd.img | gunzip > /tmp/myinitrdfs
mkdir /mnt/tmp
mount -o loop -t ext2 /tmp/myinitrdfs /mnt/tmp
然后查看/mnt/tmp中的文件linuxrc中的内容即可知道启动时会装入哪些驱动程序。 你也可以更改其中的内容,假设我们想加另一种SCSI驱动aic7xxx.o进入你的initrd.img
cd /mnt/tmp
vi linuxrc 加上一行 insmod /lib/aic7xxx.o
cp /lib/modules/`uname -r`/scsi/aic7xxx.o lib/
cd /
umount /mnt/tmp
dd if=/tmp/myinitrdfs | gzip > /boot/initrd2.img
至此,新的initrd文件initrd2.img就包含了aic7xxx的驱动程序了。
四. 紧急修复
许多情况能导致LILO引导失败,象升级内核,忘记运行lilo更新MBR,克隆硬盘,缺少SCSI驱动程序引导根文件系统等等,当我们遇到这些情况而手边又没有备份的引导软盘时,你仍然有许多其它途径去修复
1. 查看周围有没有类似的其它机器和系统在运行,如另一台服务器上有相同版本或同系列的内核在运行。
则在另一台系统上生成引导软盘(带LILO或者不带LILO),如果需要添加initrd.img中的SCSI驱动文件
2. 用CDROM安装盘启动,CDROM会载入SCSI驱动,到分区界面时用ALT+F2转入字符界面,可mount硬盘根分区,运行lilo 和做相关的修复。
本论坛由小熊在线(www.beareyes.com)joyt制作及维护