我正在尝试制作自己的 EC2 AMI。我使用 debootstrap 将软件包安装到分区上,从正在运行的 AMI(Amazon Linux)复制内核模块并重新启动。这是控制台输出的内容:
Xen 最小操作系统! 启动信息: 0xb10000(VA) 页数:0x6a400 共享信息: 0xbef32000(MA) pt_base: 0xb13000(VA) 帧数:0x9 mfn_列表:0x967000(VA) mod_start:0x0(VA) mod_len: 0 标志:0x0 cmd_line:root=/dev/sda1 ro 4 堆栈:0x946780-0x966780 MM:初始化 _文本: 0x0(VA) _etext: 0x621f5(VA) _erodata: 0x76000(VA) _edata: 0x7b6d4(VA) 堆栈起始:0x946780(VA) _结束: 0x966d34(VA) 启动_pfn: b1f 最大pfn: 6a400 映射内存范围 0xc00000 - 0x6a400000 设置 0x0-0x76000 只读 跳过 0x1000 MM:为 e6c000(e6c000)-0(6a400000) 初始化页面分配器 MM:完成了 需求图 pfns 位于 6a401000-7a401000。 堆位于 7a402000-ba402000。 初始化定时器接口 初始化控制台...完成。 gnottab_table 映射到 0x6a401000。 初始化调度程序 线程“空闲”:指针:0x7a402008,堆栈:0x6a030000 初始化 xenbus 线程“xenstore”:指针:0x7a402478,堆栈:0x6a040000 虚拟主程序:start_info=0x966880 线程“main”:指针:0x7a4028e8,堆栈:0x6a050000 “主要” “root=/dev/sda1” “ro” “4” vbd 2049 是 hd0 ******************** BLKFRONT 用于设备/vbd/2049 ********** 后端位于 /local/domain/0/backend/vbd/571/2049 无法读取 /local/domain/0/backend/vbd/571/2049/feature-barrier。 无法读取 /local/domain/0/backend/vbd/571/2049/feature-flush-cache。 10485760 个 0 字节扇区 **************************** vbd 2051 是 hd1 ******************** BLKFRONT 用于设备/vbd/2051 ********** 后端位于 /local/domain/0/backend/vbd/571/2051 无法读取 /local/domain/0/backend/vbd/571/2051/feature-barrier。 无法读取 /local/domain/0/backend/vbd/571/2051/feature-flush-cache。 1835008 个 0 字节扇区 **************************** [H [日] GNU GRUB 版本 0.97(1740800K 下限/0K 上限内存) [ 支持最低限度的类似 BASH 的行编辑。对于 第一个单词,TAB 列出可能的命令 完成。其他任何地方的 TAB 都列出了可能的 设备/文件名的完成。] 格鲁布多> [9;10H
我不太明白到底是什么失败了。
更多信息:
所以我要做的是:我创建一个 GB 卷,启动一个 Amazon Linux AMI,将该卷挂载为 /dev/sdf,创建一个分区 /dev/sdf1,在 sdf1 上创建 mkfs.ext3 文件系统,将 Debian 启动到它,安装一个内核映像,创建 menu.lst 文件:
默认 0 超时 3 回退 1
标题 Debian 根目录 (hd0,0) 内核 /boot/vmlinuz-2.6.32-5-686 root=/dev/sda1 initrd /boot/initrd.img-2.6.32-5-686
然后我关闭 Amazon Linux AMI,创建 EBS 卷的快照,从中创建 AMI(使用 hd0 或 hd00,将根设备设置为 /dev/sda1 - 我在 fstab 中将根分区设置为从 /dev/sda1 挂载)并尝试启动它。但失败了。这是我看到的控制台输出:
Xen 最小操作系统!start_info:0xb10000(VA)nr_pages:0x6a400 shared_inf:0x00ba8000(MA)pt_base:0xb13000(VA)nr_pt_frames:0x9 mfn_list:0x967000(VA)mod_start:0x0(VA)mod_len:0 flags:0x0 cmd_line:root=/dev/sda1 ro 4 stack:0x946780-0x966780 MM:Init _text:0x0(VA)_etext:0x61e65(VA)_erodata:0x76000(VA)_edata:0x7b6d4(VA)堆栈开始:0x946780(VA)_end: 0x966d34(VA) start_pfn: b1f max_pfn: 6a400 映射内存范围 0xc00000 - 0x6a400000 设置 0x0-0x76000 只读跳过 0x1000 MM: 初始化 e6c000(e6c000)-0(6a400000) 的页面分配器 MM: 完成 需求映射 pfns 位于 6a401000-7a401000。堆位于 7a402000-ba402000。初始化计时器接口初始化控制台...完成。 gnttab_table 映射到 0x6a401000。初始化调度程序线程“空闲”:指针:0x7a402008,堆栈:0x6a030000 初始化 xenbus 线程“xenstore”:指针:0x7a402478,堆栈:0x6a040000 虚拟主线程:start_info=0x966880 线程“main”:指针:0x7a4028e8,堆栈:0x6a050000 “main” “root=/dev/sda1” “ro” “4” vbd 2049 是 hd0
BLKFRONT for device/vbd/2049 **********
后端位于 /local/domain/0/backend/vbd/1784/2049 无法读取 /local/domain/0/backend/vbd/1784/2049/feature-barrier。无法读取 /local/domain/0/backend/vbd/1784/2049/feature-flush-cache。10485760 个 0 字节扇区
vbd 2051 是 hd1
BLKFRONT for device/vbd/2051 **********
后端位于 /local/domain/0/backend/vbd/1784/2051 无法读取 /local/domain/0/backend/vbd/1784/2051/feature-barrier。无法读取 /local/domain/0/backend/vbd/1784/2051/feature-flush-cache。1835008 个 0 字节扇区
[H [J
GNU GRUB 版本 0.97(1740800K 下限/0K 上限内存)
[m[4;2H+-------------------------------------------- -----------------------------+ [5;2H| [5;76H| [6;2H| [6;76H| [7;2H| [7;76H| [8;2H| [8;76H| [9;2H| [9;76H| [10;2H| [10;76H| [11;2H| [11;76H| [12;2H| [12;76H| [13;2H| [13;76H| [14;2H| [14;76H| [15;2H| [15;76H| [16;2H| [16;76H| [17;2H+----------------------------------------------- ------------------------------+ [米
使用 ^ 和 v 键选择要突出显示的条目。
按 Enter 启动所选操作系统,按“e”编辑
命令,或使用 'c' 启动命令行。[5;78H [m [7m [5;3H Debian [5;75H [m [m [6;3H [6;75H [m [m [7;3H [7;75H [m [m [8;3H [8;75H [m [m [9;3H [9;75H [m [m [10;3H [10;75H [m [m [11;3H [11;75H [m [m [12;3H [12;75H [m [m [13;3H [13;75H [m [m [14;3H [14;75H [m [m [15;3H [15;75H [m [m [16;3H [16;75H [m [16;78H [5;75H
答案1
根据这写上去:
您可能选择了错误的内核,它正在尝试从不存在的分区启动。确保您使用的是正确的 pv-grub 内核 hd0 与 hd00。
您忘记安装 grub 或将 grub 安装在错误的位置。请确保您有 /boot/grub/menu.lst 或 /boot/boot/grub/menu.lst
您的 menu.lst 文件有问题。我犯的一个错误是给启动项的标题加上了空格。在启动之前,请尽量简化 menu.lst。