Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1644823
  • 博文数量: 245
  • 博客积分: 10378
  • 博客等级: 上将
  • 技术积分: 2571
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-27 08:19
文章分类

全部博文(245)

文章存档

2013年(4)

2012年(8)

2011年(13)

2010年(68)

2009年(152)

分类: LINUX

2009-03-27 08:47:48

所用的工具软件:

          HP_USB_Boot_Utility2.2.深度U盘制作工具里面集成的也有.

这个我感觉基本不必要用.系统本身就能把此U盘格式成FAT32或者NTFS.用它来做启动盘,我没试.

基本思路还是从GRLDR着手.即GRUB.

我用的办法有GHOST法,直接把从无忧下载的 U_NT+Grub.gho,GHOST到U盘.既然是FAT16,而且4G,变成2GU盘了.开始也没成功. U盘PE之GHOST版

用深度U盘系统制作工具法.试了一下也启动不了,可能是我的设置问题.U盘USB-HDD启动软件.不过里面的文件下面可以解压来用.

下面是我的初步成功做法(有等继续试验):

下载上面的深度U盘系统制作工个具.

1把U盘格式化为FAT32.(系统格式化就行)

2安装U盘系统制作工具,在安装目录.打开/root/WINPE/GRUB2U/GRUBGUI.EXE,

安装.这样即把GRUB安装在U盘MBR里.不知道这种说法准确不,感觉就这意思.这个安装后,在U盘里是没有任何文件的.

3.然后可以把解压目录中/root/目录下的文件PS:boot,WINPE安装,grldr,ntldr........等等,全部CP到U盘根目录下.现在基本就可以重启了.

4我开始用的是. U盘PE之GHOST版提取出来的文件.启动后grub提示找不到mtldr文件.我简单把ldrxpe,复制一份修改为mtldr直接进XPPE了.吼.....

下一步装个LINUX-LIVECD.有GRUB,好办的多了.

 

首先理解引导中U盘引导部分的过程。
1:当BISO通电引导到磁盘时,会检查MBR区域(MBR:446+DPT:64+ENDFLAG:2=512)
MBR里面必须存在引导程序,通常会是我们熟悉grub,dos,95dos引导等。否则无法引导。
这里做个简要说明:平常我们将系统安装硬盘上,通常安装都是安装windows,再安装linux,而通常当安装linux时,会提示你是否安装到MBR里面,或者安装到你的某个磁盘分区里面,通常是你的/boot的所在分区。


安装在MBR,或者某个磁盘分区。这2者之间存在差别。
a:当安装到MBR时,会将已经存在的Win自己在MBR的引导程序替代,变成GRUB引导。
b:当安装到某个分区时,会由存在的Win的引导程序,引导到那个分区的Grub,再有Grub引导到各个操作系统。
这就是2者的差别。win没有为其他系统考虑过,到了自己的磁盘分区之后,对于引导其它系统,没有提供可以直接引导的命令,只能进入后修改它的boot.ini文件。而grub提供命令命令菜单,可以进行手工引导。


2:grub的制作
笔者发现win只能自动识别出U盘的第一个分区,而对于第二个分区无动于衷。所以做了这样的分区方案。不至于在使用过程中,自己创建的grub的boot分区,被别人勿删除,或者格式化。


/dev/sda1  950M   fat32                                                     
用于平时的数据存储
/dev/sda2  60M     ext2   (boot标识,可以引导启动,用cfdisk时,很容易修改。) 用于关键时刻的引导使用。


执行命令
mount /dev/sda5 /tmp/boot
grub-install --root-directory=/tmp/boot --no-floppy  /dev/sda
此处脚下留神,必须讲grub安装到/dev/sda,否则目前对于U盘的MBR来讲,没有可以用的引导程序。
此命令执行后,会在/tmp/boot/目录,也就是/dev/sda5,下面产生目录/boot/grub.里面有*stage*等文件。


综合上面的,忘记了,差menu.lst文件。添加以下内容。


title KOOK PRO USB

title windows xp
map (hd0) (hd1)
map (hd1) (hd0)
rootnoverify (hd1,0)
makeactive
chainloader +1


讲一下,如果你用U盘引导后,会自己讲识别为hd0,而当你引导,已经安装在硬盘上的win操作系统是,就会造成盘符错位,用map可以让这个虚拟磁盘互换。我也不知道该怎么样描述。用的时候,大家视自己的情况,进行修改吧。通常都是安装到第一个磁盘的第一个分区里面吧。

就是这样了!

 

****************************************************************************
menu.lst上面的内容多了起来。

****************************************************************************


下面分享一下,里面的内容。首先是目录结构。

 

:~# fdisk -l /dev/sdb

Disk /dev/sdb: 1010 MB, 1010826752 bytes
32 heads, 61 sectors/track, 1011 cylinders
Units = cylinders of 1952 * 512 = 999424 bytes

  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         951      928145+   6  FAT16
/dev/sdb2   *         952        1011       58560   83  Linux
:~# mount /dev/sdb2 /tmp/boot/
:~# tree -d /tmp/boot
/tmp/boot
|-- boot
|   `-- grub
|-- centos4.4
|-- centos4.4-64
|-- lost+found
`-- ubuntu704

6 directories

 

下面是menu.lst的内容。


:~# cat /tmp/boot/boot/grub/menu.lst
color light-gray/blue
timeout         20
default         0

title           Windows 95/98/NT/2000
map             (hd0) (hd1)
map             (hd1) (hd0)
rootnoverify    (hd1,0)
makeactive
chainloader     +1

title           CentOS 4.4 x86_64 Net Install
root            (hd0,1)
kernel          /centos4.4-64/vmlinuz root=/dev/hda2 ro single
initrd          /centos4.4-64/initrd.img
boot

title           CentOS 4.4 i386 Net Install
root            (hd0,1)
kernel          /centos4.4/vmlinuz root=/dev/hda2 ro single
initrd          /centos4.4/initrd.img
boot

title           Ubuntu 7.04 AMD 64 Net Install
root            (hd0,1)
kernel          /ubuntu704/linux root=/dev/hda2 ro single
initrd          /ubuntu704/initrd.gz
boot

阅读(8422) | 评论(0) | 转发(0) |
0

上一篇:who 命令实现

下一篇:GRUB启动命令详解

给主人留下些什么吧!~~