全部博文(1159)
分类: LINUX
2012-07-30 22:36:21
目的:实现制作windows xp PE、MAXDOS和Linux三系统引导的U盘。原因是这样的。有时分区表坏了,无法进入PE,DOS,这时,这时就可以尝试启动Linux了,一般可以进入。^_^
基本介绍:记 得上次是这样的,一个同学分区表坏了。叫我帮忙看下,我想,这种不会是设置错误吧,于是就过去了,结果弄了很久还是不行啊。。。无法实现启动。。。后来灵 机一动,能进Linux么?就弄了个Ubuntu i386光盘,果然。进去了。之后发现分区表坏了之后,她的硬盘有很多分区,至少50个。。应该是分区太多了,没地方给pe的虚拟磁盘的分区分配磁盘驱动 器序号了(windows中 C盘,D盘,E盘的那个磁盘驱动器序号)于是无法启动winPE。而Linux启动时是不会自动挂载硬盘的,而是系统启动后再实现人工挂载的。当然,喜欢 的话,也可以在/etc/fstab这个文件里面设置,实现自动挂载~^_^
而 Linux的发行版更是多如牛毛,那我们可以选择几个看看,如parted magicLinux和slitaz,那么为何选择这几个发行呢?pated magic Linux的话,实际上就是用来维修系统的,里面带有很多工具,比如著名的图形分区工具gparted,和分区表回复工具testdisk等等,并且这三 款Linux都具有图形操作界面,即使不是很熟悉命令行,照样可以使用,而且体积很小,partedmagic为70MB左右,slitaz为30MB左 右。其实,通过这篇文章,您也可以制作一个随身的Linux的,比如还有一个比较强大的适合做随身的Linux的发型:puppyLinux,具有非常齐 全的工具,从文字处理,上网浏览,到影音娱乐,系统管理等等,一样具有图形界面,并且只有100MB左右。
那 么winPE呢?这里推荐使用pe通用工具箱为(windowsXP版本,作者为一高中学生,厉害的,今年刚好毕业,可以在其官方博客中看到~~),里面 也有十分强大的工具,如王大海写的diskgenius,这个软件十分强大,可以恢复分区表,分区等等。还有pm啊,现在有加入windows7安装工 具,并且体积也是相当小,40MB左右。
当然,dos的话,简单而又强大的,就莫属maxdos了,支持鼠标啊,NTFS分区啊,中文啊什么的,好多功能,这当然需要您对dos命令熟悉。
那 么我们选择何种方式来启动我们的U盘呢?我们这里选择grub4dos(即grub 0.98,而现在很多Linux发行版用的是grub2),好处是我们可以在windows下运行该软件,而且启动菜单制作简单明了,可以引导 windows和Linux和dos,支持各种文件系统(FAT即FAT16、FAT32、NTFS、EXT2即Linux下的文件系统,更多资料可以查 询官方文档。)
那下面我们可以开始了。
准备工作:一只U盘~一只电脑~几只软件~
可能会用到的几只软件:
通用pe工具箱;官网:
puppy Linux的ISO镜像;官网: 中文版:
slitaz Linux的ISO镜像;官网:
linux下恢复分区软件:testdisk 有windows版本的~
下载地址:http://www.cgsecurity.org/wiki/TestDisk_Download
parted magic linux (比较专业的系统修复的发新版,带gparted和testdisk)
maxdos 光盘版镜像 官网:
MaxDOS 7.1 集成 GHOST 11.5 PQ、DM、光盘启动版
电信下载
网通下载
Grub4DOS;grubinst.exe 官网:
grubinst_gui.exe (其中包括grldr,grubinst.exe,grubinst_gui.exe,menu.lst文件~~)
UltraISO;
现在就开始动手制作我们U盘启动吧
先 简单的说一下windows xp和Linux的启动过程,具体的可以搜索更多的相关资料。一般计算机都是通过存储介质的主引导记录(即MBR)来实现引导的。而grub4dos正是 通过向mbr中写入数据实现在启动时计算机会寻找grldr这个文件,然后grldr再根据menu.lst中的指令列出启动菜单。而xp是通过 NTLDR这个引导文件进行引导,进入windows的,(后面的windows 7和windows Vista是通过bootmgr这个引导文件实现引导进入windows的)。而Linux则是通过两个文件进入系统的,一个是可引导的、压缩的 kernel(即内核):vmlinuz这个文件。一个是实现载入驱动什么的:initrd.gz文件。在每个发行版中这两个文件都是不一样的吧。具体可 查相关信息,不过还可以直接到boot目录下面看几个文件。
特别说一下,grub4dos:从网上下载的grub4dos只能通过bootlace.com这个文件以命令行的方式将数据写入到MBR里面去。还可以下载grubinst.exe和grubinst_gui.exe这两个文件实现图形界面操作
(温馨提示:grubinst_gui.exe只是gurbinst.exe的一个图形界面,而grubinst.exe也是个命令行工具)
制作过程:
这时,先安装好ultraISO。
(1)找一个U盘,插入USB接口,之后到下 载grub压缩包,然后解压到某个文件夹,之后运行grubinst_gui.exe(注意,要将grubinst_gui.exe和 grubinst.exe放在同一个文件夹中,否则无法运行grubinst_gui.exe)。在“磁盘”那里,选择存储容量为自己U盘的那个盘,千万 别选到硬盘去了,那样就把grub装到硬盘去了,就无法启动了。(不过看了文章后面内容的话,就会发现,其实也没关系,也一样可以引导windows的 ^_^)然后在“选项”勾选“不保留原来的MBR”,“启动时不搜索软盘”。之后安装即可。
之后将grub4dos中的grldr文件复制到U盘根目录。
温馨提示:不必格式化,还有,我们前面说过grub4dos支持的文件系统,所以FAT,FAT32,NTFS~都可以^_^。选择grub引导的原因是,grub确实很强大,可以引导Linux,windows,光盘,等等
(2) 这里选择强悍的Linux发行:partedMagicLinux,首先到官方网站下载其liveCD(, 选择Parted Magic from a CD那一项下面的下载链接)我是用的是4.8版本,现在更新到了5.1版本了,用UltraISO将其镜像iso加载到虚拟磁盘X~把PMAGIC文件夹 复制到U盘根目录。并且将PMAGIC\PMODULES\PMAGIC_5_1.SQFS重命名为小写的pmagic-5.1.sqfs(这个和 /pmagic/initramfs这个文件中的init脚本有关,脚本中的文件名为小写,而Linux对文件名大小写是敏感的,所以需要改成小写的)
(3)为何选择通用pe工具箱?这个是因为这pe体积很小。也是只有40M,而且也自带diskgenius 3.0 和PM。一般的 工作都可以满足了~~先到这里下载安装文件了
运 行TonPE_V1.9.5.exe --> "下一步" --> 安装模式选择"安装到U盘" --> 选择 "模式二(grub)"并且选择正确U盘盘符 --> 安装过程中出现 “格式化U盘” 的时候,直接关闭就可,无需理他。--> 出现“安装grub” 一样直接关闭。这样,就会把文件都考进U盘啦~(温馨提示:展开的文件有:U盘根目录有peldr文件,petools和wxpe文件夹,其 中,peldr可以删除~不过这些文件的属性都是系统+隐藏,所以要在文件夹选项中选择 “显示所有文件” 和去掉 “隐藏受保护的系统隐藏文件” 的勾才可以看得见)
安装maxdos到U盘:先到下面地址下载maxdos
电信下载
网通下载
有 时候,dos还是有点用的,但是纯dos纯属鸡肋,现在基本是NTFS文件系统,纯dos是无法进入NTFS分区的~所以选择了maxdos。 maxdos集成了大量的dos工具~确实很强大~选择光盘版,是因为文件结构简单~先下载maxdos plus 7.1光盘版。然后用winrar解压,然后用UltraISO将其加载到一虚拟磁盘,然后在该虚拟磁盘中将文件MXLDR复制到U盘的boot文件夹 下。将MAXDOS文件夹复制到U盘根目录下。(温馨提示:MAXDOS文件夹,为隐藏属性,需要显示隐藏文件夹才能看见。)
(4) 在U盘根目录新建文本文档,重命名为menu.lst(注意,扩展名必须是lst,假如看不到原先的文本文档扩展名txt,可以在“工具”->“文 件夹选项”à去掉“隐藏已知文件扩展名”前面的勾(windows7中是”组织”à“文件夹选项”)中更改。),然后在menu.lst中添加如下内容
timeout 10 color light-blue/black light-cyan/blue
title Parted Magic kernel /pmagic/bzImage edd=off noapic load_ramdisk=1 prompt_ramdisk=0 rw loglevel=0 vga=791 livemedia noeject max_loop=256 keymap=us initrd /pmagic/initramfs
title XPE find --set-root /WXPE/LDRXPE chainloader /WXPE/LDRXPE
title MAXDOS find --set-root /boot/mxldr chainloader /boot/mxldr |
温馨提示:grub的menu.lst中的文件名不区分大小写的,而Linux中是区分大小写的
(5)大功告成啦~^_^
解释一下上面的menu.lst吧
timeout就是启动菜单的可选时间,可以自己修改改
color就颜色了(这里是参考ArchLinux的^_^)
title 就是启动菜单上显示的选项标题了
而引导Linux的,都是两个指令:kernel 和 initrd 这两个
引导windows的,也就是那个样式先find --set-root 然后chainloader ~通过ldrxpe引导pe
(6)注意,U盘启动中总是要用较多内存的,计算机最好有>=256MB的内存,当然,现在的都2GB4GB了,所以一般不足为虑。
下附puppy的:(替代PartedMagicLinux的步骤)
把puppy的ISO中的
VMLINUZ INITRD.GZ PUP_431.SFS
复 制到U盘根目录~注意一定要将PUP_431.SFS重命名为pup-431.sfs,不管怎样啊,最后的文件名都是pup-431.sfs。(当然,后 面的几位数字的话,是看puppy的版本,可以看出,我用的是4.31版本了,如果喜欢的话,是可以下载中文版本的,叫小芭比)不然会出现找不到文件的 错误,就白忙了。
可在menu.lst之中添加一段指令:
title Puppy Linux - 431 kernel /boot/vmlinuz initrd /boot/initrd.gz |
即可
好了,大功告成了
进入Linux之后。注意,gparted是只能对未挂载的分区进行操作,所以,先要卸载分区才能进行格式化什么的
^_^
附加用grub引导windows XP、windows 7、windows Vista、一般Linux的menu.lst。有趣的是,这个grub不一定要安装到电脑硬盘当中,也可以安装到U盘当中,一样可以引导硬盘当中的系统~^_^
引导windows xp:
在menu.lst中添加一段:
title windows XP
find --set-root /NTLDR
chainloader /NTLDR
引导windows 7:
在menu.lst中添加如下段代码:
title windows 7 find --set-root /bootmgr chainloader /bootmgr |
引导windows Vista:
在menu.lst中添加如下段代码:
title windows Vista find --set-root /bootmgr chainloader /bootmgr
|
引导Linux的话,每个发行版的都不一样~因为那两个文件的文件名不一样~建议备份一个/menu.lst。如果是grub2的话,备份grub.cfg。这两个文件,在/boot文件夹中~
title Linux
kernel /kernel.img
initrd /initrd.gz
(上面这个只是一个模式,实际是不能用的,需要结合具体发行的)
更多的内容可参阅grub4dos的官网.wiki和自带的那个menu.lst等等。
说到修复,这里附上修复系统引导的几个方法。(通过向MBR里面写入信息实现引导)
1.直接装上grub4dos,用grub引导你计算机上的系统,根据上面的信息,再看点其他资料,应该没问题了^_^
2.恢复原先系统的引导。
(1)windows XP :由于种种原因,修复xp引导的工具很多很多
a).PM、diskgenius等磁盘工具。一般通过“更新硬盘MBR”这个命令,就可以实现引导XP
b).dos工具fdisk。运行fdisk /mbr(这个工具,XP的恢复控制台中也有,或者,自己下载)
c).mbrfix.exe:很小很精致的软件,命令行模式的。(在命令行中键入不带命令参数的mbrfix,即可跳出一个 html的帮助文件,内容相当详细,不过是英文的的,可以修复windows 2000、xp、2003)
(2)恢复windows 7、windows Vista引导
用easyBCD。是图形界面的 ,一看就会的软件,不说了。windows自带的那个bcdedit是命令行的。
(3) 恢复Linux的引导。每个发行版不一样。会搞Linux的,肯定熟悉grub,是我的话,就选择自己安装一个grub了,这里要注意,如果用grub1 或者grub4dos的话,分区格式要用ext2,而ext3或ext4等,grub1是不支持的,但grub2是支持的。所以有必要将硬盘划出一块分区 单独给Linux 的/boot用,当然,修复的话,用liveCD也很方便的^_^