并提供下载.
我需要为一些新创建的映像更新内核启动参数.通常会有人
编辑/ etc / default / grub中的GRUB_CMDLINE_LINUX_DEFAULT设置,然后运行update-grub.的
当然,我只能在chroot中执行此操作,这会失败:’/usr/sbin / grub-probe:错误:找不到
/(是/ dev安装?)的设备.
将挂载/ dev从正在运行的系统绑定到chroot允许update-grub运行,但结果是
一个破碎的grub.cfg(从图像的角度来看错误的根设备).
如果我只是使用sed来添加我需要的内核参数,它将启动图像启动,但是
后续运行的update-grub(从现在运行的映像内部)将导致麻烦.
所以我目前的解决方案是:
>编辑/ etc / default / grub中的参数
>将mount / dev绑定到chroot中
>在chroot中运行update-grub
>使用sed修复/boot/grub/grub.cfg中的错误设备节点
请告诉我有更好的方法.
# generate grub configs and install it to the generated blockdev chroot $MR update-grub 2> /dev/null chroot $MR grub-mkconfig -o /boot/grub/grub.cfg 2> /dev/null cat > $MR/boot/grub/device.map <<EOF (hd0) ${LOOPDEV} EOF chroot $MR grub-install ${LOOPDEV} 2> /dev/null
在你完成将grub安装到loopdev的“mbr”之后,你应该使用device.map文件,因为一旦实际启动它就不会从图像的角度来看是准确的.
我有一个脚本,为ubuntu 13.10 saucy x64构建完整的qcow2图像:
https://github.com/sneak/kvm-ubuntu-imagebuilder/blob/master/buildimage.sh#L211
祝好运.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。