知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

利用grub和grub2制作双系统的启动U盘

发布时间:2014-09-05 15:23:13作者:知识屋

利用grub和grub2制作双系统的启动U盘
 
我的U盘插上后,
fdisk -l查看U盘信息得知是/dev/sdb
  www.zhishiwu.com  
先将U盘制作分区表。
fdisk/dev/sdb
 
用p命令查看得知有一个fat32分区,
将他去掉,用d命令,
然后用n命令新增加一个主分区,
n后选择p(primarypartition),
然后Partition number (1-4): 1,
再用n命令新增加第二个主分区,
然后用a命令,把第一个和第二个主分区设置为可引导。
最后用w命令写入。
   www.zhishiwu.com  
格式化分区为ext3,
mkfs -t ext3/dev/sdb1
mkfs -text3 /dev/sdb2
 
然后挂载系统
mkdir/mnt/sdb1
mount -text3 /dev/sdb1 /mnt/sdb1
mkdir/mnt/sdb2
mount -text3 /dev/sdb2 /mnt/sdb2
 
然后将bt5光盘解开后,把casper和preseed文件夹拷贝到第一个分区的根目录下。
将linux deepin的整个光盘iso文件放入第二个分区的根目录下。
 
然后先安装grub到/mnt/sdb1
grub-install --root-directory=/mnt/sdb1 /dev/sdb
 
将/boot/grub/grub.conf拷贝到,u盘上对应的目录下
然后编辑grub.conf
 
[html] 
timeout         20  
default         0  
  
title           Windows 7  
map             (hd0) (hd1)  
map             (hd1) (hd0)  
rootnoverify    (hd1,0)  
makeactive  
chainloader     +1  
  
  
title backtrack 5  
root (hd0,0)  
kernel/casper/vmlinuz root=/dev/sdb1 file=/preseed/custom.seed boot=casperlocale=zh_CN text--  
initrd/casper/initrd.gz  
  
  
title linux deepin  
root (hd0,1)  
kernel/boot/grub/core.img  
savedefault  
boot  
 
这个配置文件就是说明,U盘第一个分区用grub引导的bt5,U盘第二个分区由grub引导core.img
然后引导交给core.img,这个core.img是grub2的img。
此时第二个分区上还没有core.img,这个会在后面创建,我们先这样写。
 
然后将grub安装到MBR上,
输入grub命令
[html] 
grub> root(hd1,0)  
  
 Filesystem type is ext2fs, partition type 0x83  
   
grub> setup (hd1)  
  
 Checking if "/boot/grub/stage1"exists... yes  
  
 Checking if "/boot/grub/stage2"exists... yes  
  
 Checking if"/boot/grub/e2fs_stage1_5" exists... yes  
  
 Running "embed /boot/grub/e2fs_stage1_5(hd1)"...  15 sectors are embedded.  
  
succeeded  
  
 Running "install /boot/grub/stage1 (hd1)(hd1)1+15 p (hd1,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded  
  
Done.  
  
grub> quit  
 
然后插着U盘重启系统,就应该可以顺利进入bt5系统了,bt5是基于ubuntu的,进入系统后,
将grub2写入第二个分区。
grub-install --root-directory=/mnt/sdb2 /dev/sdb
此时写入的是grub2。
然后编辑grub2的配置文件,grub.cfg,此文件内容如下:
[html] 
#  
  
# DO NOT EDIT THISFILE  
  
#  
  
# It isautomatically generated by /usr/sbin/grub-mkconfig using templates  
  
# from /etc/grub.dand settings from /etc/default/grub  
  
#  
  
### BEGIN/etc/grub.d/00_header ###  
  
set timeout=10  
  
### END/etc/grub.d/00_header ###  
  
### BEGIN/etc/grub.d/05_debian_theme ###  
  
setmenu_color_normal=white/black  
  
setmenu_color_highlight=black/light-gray  
  
### END/etc/grub.d/05_debian_theme ###  
  
### BEGIN/etc/grub.d/10_linux ###  
  
menuentry"linux deepin" {  
  
loopbackloop (hd0,2)/deepin_12.06_zh-hans_i386.iso  
linux(loop)/casper/vmlinuz boot=casperiso-scan/filename=/deepin_12.06_zh-hans_i386.iso locale=zh_CN.UTF-8 nopromptnoeject  
initrd(loop)/casper/initrd.lz  
  
}  
 
grub的配置文件里分区是(hd0,0),而grub2的配置文件里分区是
(hd0,2),因为grub里面分区从0开始,而grub2里面分区是从1开始的。
  www.zhishiwu.com  
此时grub2的MBR会覆盖掉grub的MBR,所以我们需要重启系统,进入一个正常的linux系统,
然后再执行一遍安装grub到MBR的命令,将grub的MBR覆盖掉grub2的MBR。
[html] 
grub> root(hd1,0)  
  
 Filesystem type is ext2fs, partition type 0x83  
   
grub> setup (hd1)  
  
 Checking if "/boot/grub/stage1"exists... yes  
  
 Checking if "/boot/grub/stage2"exists... yes  
  
 Checking if"/boot/grub/e2fs_stage1_5" exists... yes  
  
 Running "embed /boot/grub/e2fs_stage1_5(hd1)"...  15 sectors are embedded.  
  
succeeded  
  
 Running "install /boot/grub/stage1 (hd1)(hd1)1+15 p (hd1,0)/boot/grub/stage2 /boot/grub/grub.conf"... succeeded  
  
Done.  
  
grub> quit  
此时再重启,你就拥有了双linux系统的U盘。
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏
  • 人气文章
  • 最新文章
  • 下载排行榜
  • 热门排行榜