求助:关于U盘引导安装ubuntu系统

发布于 2022-09-15 05:20:54 字数 905 浏览 19 评论 7

我用U盘安装系统时,引导成功了,但是会报错:
               error:invalib file name 'vmlinuz'
               error:you need to load the kernel first
我的iso文件在U盘的iso目录中,grub.cfg的内容如下:
               menuentry 'Ubuntu 10.10' --class ubuntu --class gnu-linux --class gnu --class os {
                    loopback loop (hd0,1)/iso/ubuntu-10.10-dvd-amd64.iso
                    linux vmlinuz boot=casper iso-scan/filename=/iso/ubuntu-10.10-dvd-amd64.iso
                   initrd (loop)/casper/initrd.lz
  }
请各位大虾不吝赐教!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(7

高跟鞋的旋律 2022-09-19 09:36:07

本帖最后由 kunkka_lu 于 2011-03-08 21:14 编辑

如果想用 u 盘作 Fedora 启动盘, 那必须把 u 盘格式化为 ext4 格式. 我之前把 u 盘格式化成 ntfs 格式, 老是启动失败, 后面把 u 盘的格式改成 ext4, 就可以了.

首先, mount Fedora 的 iso 文件到一个目录:

$ sudo mount /xxx/fedora-14-i386-dvd.iso /mnt -o loop

然后从挂载 iso 文件的根目录的 isolinux 目录下提取 vmlinuz 和 initrd.img 文件拷贝到 u 盘;

制作 Fedora 启动盘要比制作 ubuntu 启动盘的区别在于, 这里要多出一个步骤, 就是把 Fedora iso 根目录下的 images/install.img 也复制到 u 盘里(当然, iso 文件别忘了拷贝到 u 盘里- -).

u 盘启动 Fedora 的 grub.cfg 如下:

set timeout=20

menuentry "Fedora-14-i386-dvd Install" {
    insmod ext2
    root (hd0,1)
    linux  /iso/fedora-14-i386-dvd/vmlinuz
    initrd /iso/fedora-14-i386-dvd/initrd.img
}

Fedora 启动的时候会自动搜索 iso 文件, 所以不用在 grub.cfg 里写 iso 的路径.

以上的准备工作都作完之后, 重启机器, 选择 Fedora 对应的启动项, 等待一会儿之后会出现一个菜单让你选择要安装哪个语言版本的 Fedora;

选择完语言之后, 继续弹出一个菜单, 让你选择 u 盘所对应的设备节点;

选完节点后别急着敲回车键, 下面还有一个输入框, 提示输入"Directory holding image", 在这个框里输入刚才我们提取的 install.img 放在 u 盘的路径就可以了;

敲下回车键, Fedora 华丽的安装界面就出来了.

负佳期 2022-09-19 09:29:22

本帖最后由 kunkka_lu 于 2011-03-08 21:08 编辑

如果把 vmlinuz 和 initrd.lz 从 iso 文件里提取出来的话, grub.cfg 可以写成这样子:

set timeout=20

menuentry "Ubuntu-10.10-amd64-dvd Install" {
     insmod ext2
     root (hd0,1)
     linux /iso/ubuntu-1010-amd64-dvd/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu-1010-amd64-dvd/ubuntu-1010-amd64-dvd.iso ro
     initrd /iso/ubuntu-1010-amd64-dvd/initrd.lz
}

痴者 2022-09-19 09:25:46

本帖最后由 kunkka_lu 于 2011-03-14 21:59 编辑

$ sudo grub-install --root-directory=/mnt /dev/sdb

这里的 /mnt 指的是将要安装 grub 的 rootfs 的绝对路径, 即是本例 u 盘所 mount 到 pc 的目录; 如果 u 盘有多个分区也不要紧, --root-directory=/要安装的分区目录 就可以了;

/dev/sdb 对应的是 u 盘的设备节点, 而不要写成 /dev/sdb1, 那是 u 盘第一个分区所对应的设备节点;

上面的例子写的 grub.cfg 有点复杂了, 下面这个稍微简单一点:

set timeout=20

menuentry "Ubuntu-10.10-amd64-dvd Install" {
      insmod ext2
      loopback loop (hd0,1)/iso/ubuntu-1010-amd64-dvd.iso
      linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu-1010-amd64-dvd.iso ro
      initrd (loop)/casper/initrd.lz
}

"set timeout=20"的意思是设置 grub 在启动的时候所显示的时间为 20 秒;

"insmod ext2" 意思是加载 ext2 模块, 在后面挂载 ramfs 时需要到这个模块;

"loopback loop (hd0,1)/iso/ubuntu-1010-amd64-dvd.iso" 意思是通过 loopback 方式, 相当于设置一个虚拟光驱, 读取第一块硬盘(此时的 u 盘就相当于第一块硬盘)的第一个分区( index 是从1开始的)的根目录下的iso/ubuntu-1010-amd64-dvd.iso,  并把这个 iso 的路径赋给 loop 变量;

"linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu-1010-amd64-dvd.iso ro" 中的 "linux (loop)/capser/vmlinuz" 的中 (loop) 相当于 iso 文件里面的 rootfs , 意思是设置加载 kernel images 的路径为 iso 文件内部的根目录中的 casper/vmlinuz,   "boot=casper" 意思是设置 boot 启动方式为 casper, ro 的意思是设置打开这个 iso 文件的方式为 Read Only;

"initrd (loop)/casper/initrd.lz" 和上面的vmlinuz一样,  指明 initrd 的路径.

木落 2022-09-19 08:59:24

以下是鄙人制作U盘引导安装ubuntu10.10的过程,有些粗略,还望老鸟指教。
第一步:将grub2安装到U盘
1.apt-get install grub2   //下载grub2到电脑
2.mount /dev/sdb1 /mnt    //将u盘挂载到电脑
3.grub-install --recheck --root-directory=/mnt /dev/sdb   //将grub2安装到U盘
显示 no error则安装成功

第二步:编辑grub.cfg
1.进入U盘中的/boot/grub/
2.新建一个名为grub.cfg的文件
3.添加以下内容到grub.cfg
    set default="2"
    set timeout=5
    set gfxmode=1024*768
    insmod gfxterm
    insmod vbe
    terminal gfxterm

    menuentry 'Ubuntu 10.10' --class ubuntu --class gnu-linux --class gnu --class os
    {
        loopback loop (hd0,1)/iso/ubuntu-10.10-desktop-i386.iso
        linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu-10.10-desktop-i386.iso
        initrd (loop)/casper/initrd.lz
    }
注:其中linux 后面跟光盘中的kernel路径,initrd后面跟光盘中initrd.gz文件的绝对路劲(一般包含于iso中)

第三步:重启电脑就可以看见grub界面了,选择ubuntu10.10进入ubuntu系统的安

痴意少年 2022-09-19 07:28:17

本帖最后由 0602_hua 于 2011-01-06 14:16 编辑

回复 3# taoxie17

囧{:2_163:} ,grub配置错了!修改成这样就可以了
    menuentry 'Ubuntu 10.10' --class ubuntu --class gnu-linux --class gnu --class os {
          loopback loop (hd0,7)/iso/ubuntu-10.10-dvd-amd64.iso
          linux (loop)/casper/vmlinuz boot=casper iso-scan/filename=/iso/ubuntu-10.10-dvd-amd64.iso
          initrd (loop)/casper/initrd.lz
  }

爱你是孤单的心事 2022-09-19 07:05:25

你怎么解决的,跟大家说说!Share一下!

七禾 2022-09-19 06:59:01

問題已解决,謝謝!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文