手斧Linux – 从LFS到Funtoo (131)

原创 2015年07月09日 17:36:49

第16章 U盘启动遇到的问题

A. syslinux是否正常?

如果以下条件都成立:

· U盘的分区表正常,

· /dev/sdb1有指定是激活分区,

· syslinux正常安装到/dev/sdb1,

那么,就会显示出syslinux正在启动的信息,并显示选择菜单。可用tab键来查看菜单选项对应的参数,也可做临时的一次性修改。

B. kernel是否正常加载?

如果在syslinux.cfg里的kernel=项写对了,syslinux能理解/dev/sdb1的msdos文件系统格式,并从中取出kernel的img文件,加载后跳进去执行。这时在终端窗口(控制台,由syslinux.cfg里定义的console=指定。)上可以看到有内核启动的相关信息输出。

C. initramfs是否正常加载?

它是由kernel加载起来的。syslinux会将cfg文件里指定的initrd=指定的initramfs映像装内存,kernel会在加载的后期找到它,并开始解压缩。在kernel的启动信息输出中,会看到这条信息Unpacking initramfs......。

如果不能正常,要查看syslinux的cfg文件里initrd=指定的路径是不是对了。

D. rootfs是否正常加载?

rootfs由initramfs里的linuxrc发现并完成加载的。要完成这个工作,kernel+initramfs的系统要有能力将rootfs所在的文件系统mount上来。对于第1种方法做的U盘,kernel或initramfs里,要有能力支持访问msdos分区,得到image.squ,并要有能力支持访问loop 和squashfs的文件系统,能将image.squ mount上来,得到里面的rootfs。而对于第2种方法做的U盘,情况可能会顺利些,因在缺省情况下,对ext3的文件系统都是支持的,反而是U盘的第2分区可能被分配成别的设备文件(由具体的硬件配置决定),不是/dev/sdb2,syslinux.cfg里的root=指定的。

当rootfs找不到或装载出现困难时(或找不到指定的介质,或不能成功将指定的设备mount上来。),initramfs会停下来。让你有机会列换启动介质(如光盘软盘U盘);或输入指定一个新的rootfs所在的设备文件名;或输入shell进入到initramfs带来的busybox的命令行里,提供更大的调试空间。

进入到shell里,可以查看预期的设备文件(如/dev/sdb2)是否存在,如果找不到,可能是设备的硬件驱动没正常工作,驱动程序没有加载成功;可以用dmesg来查看系统启动过程中遇到的情况;可以用lsmod来查看动态加载了哪些ko模块;可以用mount命令来调试介质的加载情况。

E. msdos分区是否能正常加载?

syslinux只能安装在msdos或ntfs分区里。这就要求kernel+initramfs要能mount msdos分区。如果在busybox的shell里mount /dev/sdb1 (一个msdos分区),失败了,用dmesg能看到失败的原因,可能是缺少了msdos文件系统的支持,也可能是缺少了NLS_CODEPAGE_437 NLS_ISO8859_1字

相关文章推荐

手斧Linux – 从LFS到Funtoo (124)

第13章 LiveCD问题分析 1,关于qemu命令行里的  -boot d -cdrom myfuntoo.iso。 -cdrom myfuntoo.iso 让qemu虚拟机里输出一个cdr...

手斧Linux – 从LFS到Funtoo (149)

wget http://mirrors.xmu.edu.cn/gentoo/distfiles/bash42-033 wget http://mirrors.xmu.edu.cn/gentoo/di...

手斧Linux – 从LFS到Funtoo (152)

wget http://mirrors.xmu.edu.cn/gentoo/distfiles/Module-Load-Conditional-0.52.tar.gz wget http://mir...

手斧Linux – 从LFS到Funtoo (32)

第15节 再次调整工具链分布 ln -sv /tools/bin/x86_64-wolf-linux-gnu-addr2line  /tools/bin/addr2line ln -sv /too...

手斧Linux – 从LFS到Funtoo (150)

wget http://mirrors.xmu.edu.cn/gentoo/distfiles/eselect-python-20111108.tar.bz2 wget http://mirrors...

手斧Linux – 从LFS到Funtoo (2)

第1章 前言 2012年春节前,我开始学习LFS,详尽的LFS手册,让我有依有据地体验了一个系统的构造过程,漫长而劳累。接下来,我开始着迷于另一个问题:如何自己动手从源码开始构造出ubuntu的发行...

手斧Linux – 从LFS到Funtoo (151)

wget https://nodeload.github.com/gentoo/hwids/tar.gz/hwids-20121202 -O hwids-20121202.tar.gz wget h...

手斧Linux – 从LFS到Funtoo (97)

第3节 安装第一批软件包 接下来,可以用ebuild...qmerge来安装软件包了,portage系统将完成源码包的定位、下载、解开、编译、安装、管理等工作。 1. ebuild /usr/...

手斧Linux – 从LFS到Funtoo (98)

cd /var/tmp/portage/sys-devel/gettext-0.18.1.1-r3/work/gettext-0.18.1.1 rm config.cache CFLAGS="-mt...

手斧Linux – 从LFS到Funtoo (134)

2. 如何手工将生成的initramfs包解开? 为什么要解开生成的包呢?因为在排错时,需要查验initramfs包里的内容,以验证思路,坚定决心。以gentoo官方livecd里的initramfs...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:手斧Linux – 从LFS到Funtoo (131)
举报原因:
原因补充:

(最多只允许输入30个字)