求大神指点如何将grub2正确地装入u盘,以完成.iso文件的引导

本人实力有限,仅靠网上的教程实在是搞不定这个问题
先谈谈我之前大概尝试了的方法:
首先,找个u盘用fdisk分区(就分了一个区,开头4096个扇区,设定为活动分区了),再用mkfs.vfat格式化成fat32;
然后,尝试了grub-install --force --no-floppy --root-directory=/media/MULTIBOOT/ /dev/sdb这样的命令(这个是用过的参数最详细的一个,还有几个比这个简单的也试过,效果看起来没什么区别),安装grub2,显示成功安装(有时候不成功,用过sudo grub-mkdevicemap就成功了),u盘里也出现了/boot/grub/的一系列文件;
接着,把grub.cfg文件copy过去并修改(这个具体内容先不说,因为我连grub的命令行都没能进去,权限我也查看过了,属于我当前用户,755);
然后,把.iso文件和另外两个文件拷过去;
重启,f12选u盘,然后就直接跳到电脑的grub2去了;
这到底哪里出了错,我不明白,u盘以前用过grub4dos那个引导ubuntu12.04-desktop-i386.iso装了现在这个系统,但是现在也没win了,没法改里面的manu.lst了,就想用grub2
另外,我在电脑本身的grub2命令行输入grub.cfg里的部分内容,倒是可以引导u盘里的镜像文件,挺正常的
所以,我想,在ubuntu12.04上,除了用这样的命令,还有什么安装grub2的方式,或更好的命令

我又上网查了查,我本来还以为grub-install可以自动写入引导区,看来好像是我搞错了

http://www.ubuntukylin.com/ukylin/forum.php?mod=viewthread&tid=2228

试过这个方法了,还是没反应,求解?

[

这几条我打过的,没反应,上面没打出来

直接重启 引导你电脑的grub? 你是如何认定是电脑 而不是u盘的呢?

如果你不修改 u盘的 grub.cfg u盘的grub 和 电脑上面的是一模一样的

最好贴出你u 盘的grub.cfg 看看

我试验到底是哪个的时候把grub.cfg里的其中一个的标题改了改,但是引导的还是原来的
set default=0
#系统默认启动顺序
insmod fat
#除了用作启动的分区外,其他分区格式可在menu底下再添加
set root=(hd0,1)
#设定root分区
#search --no-floppy --fs-uuid --set=root 4E0D-95D8
#设定uuid=****的分区为root,和上句重复,可删除

以下为终端配置

if loadfont /boot/grub/unicode.pf2 ; then
#设置终端字体,unicode.pf2支持中文显示
set gfxmode=1024x768
#设置分辨率,默认为 640x480,可用800x600,1024x768,建议跟你想设定的图片大小一致
insmod gfxterm
#插入模块 gfxterm,支持中文显 示,它还支持 24 位图像
insmod vbe
#插入 vbe 模块,GRUB 2 引入很多模块的东西,要使用它,需要在这里加入
if terminal_output gfxterm ; then true ; else

For backward compatibility with versions of terminal.mod that don’t

understand terminal_output

terminal gfxterm
#设置 GRUB 2 终端为 gfxterm
fi
fi
set timeout=10

BEGIN /etc/grub.d/05_debian_theme

set menu_color_normal=white/black
set menu_color_highlight=cyan/black
#这两行为 Debian 下的菜单颜色设置,如果默认的话,你会发现背景完全被蓝色挡住了,你需要修改 blue 为 black,这样背景就会出现

END /etc/grub.d/05_debian_theme

menuentry “ubuntu-12.04.1-desktop-i386.iso” {
insmod fat
insmod loopback
insmod iso9660
loopback loop (hd0,1)/ubuntu1/ubuntu.iso
set root=(loop)
linux /casper/vmlinuz boot=casper iso-scan/filename=/ubuntu1/ubuntu.iso
initrd /casper/initrd.lz
}

menuentry “ubuntu-12.04.3-alternate-i386.iso”{
insmod fat
insmod loopback
insmod iso9660
loopback loop (hd0,1)/ubuntu2/ubuntu.iso
set root=(loop)
linux /install/vmlinuz boot=install iso-scan/filename=/ubuntu2/ubuntu.iso
initrd /install/initrd.gz
}

root = (hd0,1) 肯定引导的是 你硬盘上的grub
16.gif

QQ截图20131205183318.jpg

插入u盘 系统监视器显示 我u盘 是/dev/sdb4

menuentry "Ubuntu 13.10 Beta-Final" {
insmod fat
set root='hd0,msdos4'
set isofile="/iso/ubuntukylin-13.10-beta2-desktop-i386.iso"
loopback loop $isofile
linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=$isofile noeject noprompt locale=zh_CN.UTF-8
initrd (loop)/casper/initrd.lz
}

BEGIN /etc/grub.d/40_custom

This file provides an easy way to add custom menu entries. Simply type the

menu entries you want to add after this comment. Be careful not to change

the ‘exec tail’ line above.

自定义的引导写在这里

END /etc/grub.d/40_custom

直接复制硬盘里面的 grub.cfg
其他的都不要动 写在40_custon 之间

还可以备份下硬盘的引导

25.gif

关于这个,我有在电脑的grub2中输入ls察看,是(fd0,msdos1),在电脑上可以引导的,在u盘上不行,开机选完u盘,直接跳电脑grub2去了

(hd0,1)是个范文,不好意思,我具体写的是(fd0,msdos1)

这个位置我觉得没什么关系吧,打#的不是注释吗

… 你还是没明白 你的 root (fd0, msdos1)
就是你硬盘引导的位置 它肯定去引导硬盘去了啊

27.gif

你要想u盘 引导 就要找到你u盘的位置
将你u盘的位置 设为 root 才行啊

18.gif

9# 说的还不清楚吗 :7_146:

难道说,不是(fd0,msdos1),是(hd0,msdos1),是的话就杯具了,我现在暂时都没法试了,由于我怀疑软件不正常,下了个源码自己编译(其实我只编译过驱动),结果把自己电脑的grub给覆盖了,而且不正常,虽然能引导,但是没法弄到u盘里了

这个到不至于,u盘只有一个分区,硬盘有多个,不会搞错的,我现在就是觉得可能硬盘引导的时候u盘是fd0, msdos1,但u盘引导的时候,可能是hd0,msdos1
Device Boot Start End Blocks Id System
/dev/sda1 61448686 594196154 266373734+ f W95 Ext’d (LBA)
/dev/sda2 619587584 625141759 2777088 82 Linux swap / Solaris
/dev/sda3 * 594196480 619587583 12695552 83 Linux
/dev/sda4 2048 61448191 30723072 83 Linux
/dev/sda5 61448688 245762369 92156841 7 HPFS/NTFS/exFAT
/dev/sda6 245762433 430076114 92156841 7 HPFS/NTFS/exFAT
/dev/sda7 430076178 594196154 82059988+ 7 HPFS/NTFS/exFAT

Partition table entries are not in disk order

Disk /dev/sdb: 1027 MB, 1027604480 bytes
7 heads, 32 sectors/track, 8960 cylinders, total 2007040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Device Boot Start End Blocks Id System
/dev/sdb1 * 4096 2007039 1001472 b W95 FAT32

换了(hd0,msdos1)后,真的引导了,多谢了,但是,为什么是root权限的,su root后,chown -R user xxx还改不了?