系统引导与安装
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
-
- 帖子: 20
- 注册时间: 2011-12-14 12:59
系统引导与安装
1.引导程序有多种,如
xp的ntldr引导,引导程序为c盘下的ntldr,配置文件为boot.ini;
windows vista/windows7的bootmgr引导,配置文件为/boot/BCD;
dos的io.sys,引导程序io.sys;
grub4dos是dos版的grub和grub用法是一样的,引导程序为grldr,配置文件默认为menu.lst,可以用grub --config-file=“”指定;
syslinux引导程序为ldlinux,配置文件一般为指定目录下的syslinux.cfg;
grub2为下一代grub,加载core.img和功能模块,配置文件/boot/grub/grub.cfg
还有lilo、fbinst方式、ezboot方式(光盘镜像)、时空淘气包、 plop boot manager等成套解决方案,不太熟悉。
引导过程:mbr/pbr-->引导程序-->系统内核-->其它功能的载入,如grub4dos启动ubuntu的过程:开机时,硬盘上的grub4dos的mbr代码首先被运行,指向grldr,grldr载入和运行,并加载menu.lst配置,这就是我们见到的grub4dos画面了,上面有一些启动项菜单,在选择了ubuntu启动项后,硬盘上ubuntu内核文件(vmlinuz)(文件系统,硬件驱动等)加载进来,然后运行init进程启动系统。init是linux系统最先运行的进程,由它引发了一系列子进程。我试过,如果把linux系统/sbin/init替换为一个十分简单的hello,world 程序(将 'hello,world 程序' 命名为init替换/sbin/init), 那么重启系统后内核加载执行后屏幕上会显示“hello,world!”, 当然也就别想进入linux了,用u盘启动计算机,将原init替换回来,又可正常启动。
因此,用一个引导程序启动系统应该:1.正确安装了mbr/pbr,可用bootice,grub4dos,usbboot,ultraiso等工具完成;2.在目录下有mbr指向的必要的文件;3.编写正确的启动项,这个一般在引导器的配置文件里编写,grub也可以用交互式的命令来寻找和启动系统
引导程序间还可进行链接,如syslinux在syslinux.cfg中加入:
Label grub
kernel grub.exe
该syslinux的条目可从syslinux链接到grub引导;ntldr的boot.ini中加入:
[operating system]
X:\grldr
重启winxp,即有grub4dos接管ntldr的选项。
引导程序可安装在不同介质上如u盘、光盘、硬盘、软盘上,通过更改bios中的启动顺序或按esc选择进行启动。
借助不同工具,引导程序的安装方式有多种,以在u盘上安装为例:准备一个格式化的u盘
(1)Ultraiso安装winPE到u盘:打开下载的x.iso,选择菜单中的“启动”——>“写入硬盘映象”;
在硬盘驱动器下拉列表中选择u盘盘符,注意u盘大小是否相符,别误选了硬盘造成数据被毁,开始写入;
重启,选择u盘启动。
这样的引导程序决定于pe所使用的引导,普遍的是ntldr、gurb4dos和bootmgr
(2)USBBOOT制作dos的U盘:选择u盘盘符,点“点击此处选择工作模式”,选引导处理,点"开始“,重启选u盘启动即进入dos,若将 grub4dos复制到u盘某一目录下,在dos下,进入grub4dos:
cd ‘grub4dos所在目录’
grub,即进入grub4dos。
(3)推荐此方法,BOOTICE可制作不同的引导,是制作可启动u盘不错的工具,但要自己将引导所需文件复制到u盘下。以引导dos再由dos引导grub4dos 为例:目标磁盘选u盘盘符,如果只有两个分区可看到“主引导记录”,点击“主引导记录”-->选择“ultraiso HDD+(占用1扇区)“——>点”安装/配置“,主引导记录即安装成功,若只有一个分区则不需设置主引导记录 。下一步安装分区引导记录,点”分区引导记录“——>下拉列表中选择安装分区,选择”MS-DOS引导程序(FAT)“-->点“安装/配置”,分区引导记录安装成功。
此时还不能引导,缺少所需文件,下载任一dos,从中最少提取io.sys、command.com、msdos.sys三个文件到u盘根目录,u盘启动即进入dos。若要引导至grub4dos,下载grub4dos,将其解压到u盘下,在u盘目录下新建autoexec.bat,编辑写入以下内容:
cd ‘grub4dos所在目录’
grub
,保存退出。这个autoexec.bat作用是启动dos后自动执行了grub,不用autoexec.bat,重启后在dos下cd 到grub4dos目录后执行grub是一样的效果。
2.系统安装
(1)xp的安装:
dos和winPE和windows(安装ghost后重启)下都有相应的ghost,进入以上系统,运行ghost后将下载的ghost版的XP *.gho克隆至要安装的分区,重启安装即可。
(2)32位系统下64位windows 7安装到c盘:
进入xp或winpe,将下载的windows7 *.iso解压到D盘win7目录下,复制bootmgr和boot文件夹到c盘,复制D:\win7\sources\boot.win到c: \sources下,打开cmd,运行c:\boot\bootsect.exe /nt60 C:
重启,进入安装界面,不要点“安装Windows”按钮,点击“修复计算机”按钮,在Windows恢复环境中,ntfs格式化c盘,点击命令提示符进入DOS,运行D:\Win7\sources\setup.exe进入安装程序安装即可
(3)ubuntu的安装:
a.下载ubuntu.iso,提取iso文件中的casper下的vmlinuz和initrd.lz和.disk
b.使u盘能引导至grub4dos(可用BOOTICE制作grub4dos引导,也可制作dos引导再在dos下执行grub),在grub4dos目录下找到menu.lst,编辑加入启动选项:
title ubuntu
root (hd0,1) #这里的(hdx,y)对应vmlinuz和initrd.lz
kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu.iso ro quiet splash locale=zh_CN.UTF-8
initrd /initrd.lz
注意vmlinuz;initrd.lz;ubuntu.iso三个文件的路径根据实际情况修改
重启选中该项即可启动进入liveCD
c.进入liveCD后打开终端
sudo umount -l /isodevice #把isodevice卸载
d.此时可以运行桌面的安装程序安装,liveCD安装的好处在于安装时还可以一边安装一边听歌上网,安装时建议将单独挂载一分区到/boot,这样系统所在分区将不影响/boot分区的启动,建议将单独挂载一分区到/home,这样以后在重安装linux时将不会影响用户数据
3.设置启动项
(1)grub4dos的menu.lst示例
# 默认延迟时间(秒)
timeout 30
# 第一项为默认值
default 0
# 设置图形背景文件
splashimage (hd0,0)/boot/grub/xp2008.gz
# 设置中文支持的字体文件
fontfile (hd0,0)/boot/grub/fonts
title 使用map启动本地硬盘上的瑞星杀毒软盘镜像文件
map (hd0,0)/boot/grub/rav.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
title 使用memdisk启动本地 Win98 软盘镜像文件
kernel (hd0,0)/boot/grub/memdisk.gz
initrd (hd0,0)/boot/grub/win98.img
title 使用memdisk启动本地硬盘上的瑞星杀毒软盘压缩镜像文件
root (hd0,0)
kernel /boot/grub/memdisk.gz c=80 h=12 s=36 floppy
initrd /boot/rav.zip
title 启动第一主分区(hd0,0)上的操作系统
rootnoverify (hd0,0)
makeactive
chainloader +1
title 启动第二主分区(hd0,1)上的操作系统
rootnoverify (hd0,1)
makeactive
chainloader +1
#启动xp和winpe
#title windows XP
#root (hd0,1)
#chianloader /ntldr
#启动win7
#title windows 7
#root (hd0,1)
#chainloader /bootmgr
title 重启
reboot
title 关机
halt
(2)syslinux的syslinux.cfg示例
default vesamenu.c32
timeout 300
F1 readme.txt
F2 syslinux.cfg
MENU BACKGROUND back.png
MENU TITLE
MENU TIMEOUTROW 16
menu color border 30;44 #00000000 #00000000 none
LABEL runpe
MENU LABEL [01] --
kernel /boot/isope.bin
LABEL linux
MENU LABEL [03] --
kernel /boot/SYSLINUX/vmlinuz
append initrd=/boot/SYSLINUX/initrd.gz
LABEL maxdos
MENU LABEL [04] --
kernel /boot/syslinux/memdisk c=142 h=4 s=36 floppy
append initrd=/boot/imgs/maxdos.img
LABEL gdisk
MENU LABEL [05] --
kernel /boot/syslinux/memdisk
append initrd=/boot/imgs/gdisk.img
LABEL ghost
MENU LABEL [06] --
kernel /boot/syslinux/memdisk c=100 h=2 s=36 floppy
append initrd=/boot/imgs/ghost23.ima
LABEL ezboot
MENU LABEL [08] --
kernel /boot/loader.bin
#启动硬盘第一分区
LABEL hddboot
MENU LABEL [9] --
kernel /boot/SYSLINUX/chain.c32 hd0,1
#重启
LABEL reboot
MENU LABEL [10] --
kernel /boot/SYSLINUX/reboot.c32
(3)bcdedit编辑bootmgr的bcd示例
推荐使用,bootice可以用来编辑bcd的选项
#添加引导到grldr的选项,{id}指生成的那一大段数字
bcdedit /create /d "grub" /application bootsector
bcdedit /set {id} device partition=c:
bcdedit /set {id} path \grldr.mbr
bcdedit /displayorder {id} /addlast
#引导windows Xp的选项
Bcdedit /create {ntldr} /d "Windows XP Professional"
Bcdedit /set {ntldr} device partition=c:
Bcdedit /set {ntldr} path \ntldr
Bcdedit /displayorder {ntldr} /addlast
#创建一个可从硬盘启动 WIM 映像的条目
a. 通过指定以下内容,在您的 BCD 存储中创建 {ramdisktoptions} Drive。X: 应是包含该映像的驱动器。
bcdedit /create {ramdiskoptions} /d "Ramdisk options"
bcdedit /set {ramdiskoptions} ramdisksdidevice partition=X:
bcdedit /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
b. 通过指定以下内容,创建新的启动应用程序条目:
bcdedit /create /d "Boot from WIM" /application OSLOADER
c. 这将为新创建的条目返回一个标识符 (GUID)。此过程的其他部分将使用 {GUID} 指代该新条目。接下来指定以下内容:
bcdedit /set {GUID} device ramdisk=[c:]\sources\boot.wim,{ramdiskoptions}
bcdedit /set {GUID} path \windows\system32\winload.exe
bcdedit /set {GUID} osdevice ramdisk=[c:]\sources\boot.wim,{ramdiskoptions}
bcdedit /set {GUID} systemroot \windows
d. 如果要引导到 Windows 预安装环境 (Windows PE),则还需要指定:
bcdedit /set {GUID} winpe yes
bcdedit /set {GUID} detecthal yes
e. 继续指定以下内容,将新条目添加到显示顺序中:
bcdedit /displayorder {GUID} /addlast
4.bootmgr引导linux
linux下,生成linux.mbr : dd if=/dev/sda of=/media/windows/linux.mbr count=1 bs=512
将linux.mbr拷至windows下某一分区,如3(3)所述bcdedit创建链接至linux.mbr的条目
5.关于windows 的激活问题
前两天用激活工具激活windows7,重启后显示怎么都是不激活,使用的都是软激活模拟OEM的方式,后来意识到这是一个引导问题,一般的激活软件都在启动分区目录下生成grldr启动时实际是从grldr-->bootmgr , 而我的没有激活的原因是直接就bootmgr启动了,我想grldr的扮演了欺骗系统为OEM主板的角色。
于是用OEM7再激活win7,重启后没有显示激活,发现目录下多了个OEMSY,猜想它和grldr具有相同功能,于是 改成grub4dos引导,用
find --set-root /OEMSY
chainloader /OEMSY
boot
启动后,win7显示已激活。
上次由 haoyunniu 在 2012-02-19 18:38,总共编辑 5 次。
- YeLee
- 论坛版主
- 帖子: 26406
- 注册时间: 2008-08-13 8:48
- 系统: Fundu i64
- 来自: 东海硇州,一双管钥。
- 联系:
Re: 系统引导与安装
教程很详细,楼主辛苦了




◎当我站在道德的高度上俯视别人的时候,发现自己是多么渺小。
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
♥执着但不偏激,反对而不排斥,坚决捍卫矛盾体的存在方式。
★★★天气预报★★★
fcitx-yatable一个可以使用的码表输入法
[教程]几个实例攻克软件编译难关
Gentoo Development Guide
字体相关
-
- 帖子: 14
- 注册时间: 2011-12-04 23:31
Re: 系统引导与安装
谢谢楼主,很好的教程
- ahyanglf
- 帖子: 54
- 注册时间: 2010-01-18 20:15
Re: 系统引导与安装
来学习下,命令对我来说还是陌生的啊
-
- 帖子: 121
- 注册时间: 2011-10-25 11:07
- 系统: Arch
-
- 帖子: 20
- 注册时间: 2011-12-14 12:59
Re: 系统引导与安装
哦,谢谢补充,我对这一点是不熟悉eve_ouyang 写了:memdisk那里没说明,大于2.88M的要加C.H.S
- 32idea
- 帖子: 1251
- 注册时间: 2006-12-15 9:32
- 系统: linux
Re: 系统引导与安装
讲解很详细,值得仔细学习,mark 

- lovebluesky
- 帖子: 487
- 注册时间: 2010-02-03 17:09
Re: 系统引导与安装
mark
openSUSE+xfce 13年初开始用,可能要成为我用的最久的linux系统了
之所以xfce的官方理由是他轻便简洁
非官方理由是穷,没钱换高配电脑
继续为了买了mac但任性的换装openSUSE而奋斗!
之所以xfce的官方理由是他轻便简洁
非官方理由是穷,没钱换高配电脑
继续为了买了mac但任性的换装openSUSE而奋斗!