我是一名软件测试员,我正在尝试在各种 Linux 内核(3.2+)上测试内核模块。目前,我正在尝试编译模块、安装它并在所有 Linux 内核 3.2 及以上版本上运行自动测试套件。
我在虚拟机上运行 Ubuntu 14.04 kernel 3.13.0-32-generic
。我的计划是从 下载 git 存储库https://github.com/torvalds/linux
,签出版n
本(即 3.14.0),使用默认配置进行编译(我不太关心调整内核),安装它,使用新内核启动,编译我的内核模块,挂载它,测试它,清理,冲洗并重复。
所以为了学习这个磨难,我尝试安装3.14.0。
我运行通常的命令(我认为):
make defconfig && make && make modules && make install && make modules_install
耶!我想我已经安装了它,grub.cfg
已经显示了使用新内核的默认启动选项。我可以在 下看到vmlinusz-3.14.0
和。initrd.img-3.14.0
/boot
但是,当我重新启动虚拟机时,出现以下信息:
ALERT! /dev/disk/by-uuid/231ea9ac-f01d-42dc-830b-f3ecd4775148 does not exist. Dropping to a shell.
我发现 HDD 甚至没有列出/dev
(没有sda
)。
当我跑步时cat /proc/cmdline
我得到:
BOOT_IMAGE=/boot/vmlinuz-3.14.0 root=UUID=231ea9ac-f01d-42dc-830b-f3ecd4775148 ro quiet splash
当我返回时3.13.0-32-generic
,我可以看到设备,可以找到/dev/disk/by-uuid/231ea9ac-f01d-42dc-830b-f3ecd4775148
文件。此外,fstab
显示:
# <file system> <mount point> <type> <options> <dump> <pass>
# / was on /dev/sda1 during installation
UUID=231ea9ac-f01d-42dc-830b-f3ecd4775148 / ext4 errors=remount-ro 0 1
# swap was on /dev/sda5 during installation
UUID=db20004e-9c66-436c-b572-aa44deb571fa none swap sw 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto,exec,utf8 0 0
我真的不知道该看哪里了。
我正在使用虚拟机,但是我无法在 VMware 中编辑、创建、删除虚拟机,以防万一(我不管理环境)。
为什么无法在 3.14.0 下启动?我做错了什么吗?