手斧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 (2)

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

手斧Linux – 从LFS到Funtoo (149)

wget http://mirrors.xmu.edu.cn/gentoo/distfiles/bash42-033 wget http://mirrors.xmu.edu.cn/gentoo/di...
  • sanitywolf
  • sanitywolf
  • 2015年07月09日 18:02
  • 356

手斧Linux – 从LFS到Funtoo (99)

1. ebuild /usr/portage/app-misc/pax-utils/pax-utils-0.5.ebuild clean install qmerge 2. ebuild /usr/p...
  • sanitywolf
  • sanitywolf
  • 2015年06月27日 05:18
  • 256

手斧Linux – 从LFS到Funtoo (101)

153. ebuild /usr/portage/sys-libs/pwdb/pwdb-0.62.ebuild clean install qmerge 154. ebuild /usr/porta...
  • sanitywolf
  • sanitywolf
  • 2015年07月01日 22:34
  • 138

手斧Linux – 从LFS到Funtoo (114)

为了在后面的实验步骤中,制作LiveCD和启动U盘,支持squashfs vfat 等 文件系统,还有loop设备。在genkernel的缺省安装里,这些选项是不够丰富的,在这里将它们加上。命令 如...
  • sanitywolf
  • sanitywolf
  • 2015年07月01日 22:48
  • 217

手斧Linux – 从LFS到Funtoo (3)

码开始编译ubuntu。突然间,我理解了“ubuntu是基于debian”的这个说法。ubuntu由debian所使用的deb包来建造,而deb包有一个称为buildd的多机系统来完成编译构造,bui...
  • sanitywolf
  • sanitywolf
  • 2014年12月17日 21:38
  • 316

手斧Linux – 从LFS到Funtoo (97)

第3节 安装第一批软件包 接下来,可以用ebuild...qmerge来安装软件包了,portage系统将完成源码包的定位、下载、解开、编译、安装、管理等工作。 1. ebuild /usr/...
  • sanitywolf
  • sanitywolf
  • 2015年06月27日 05:16
  • 211

手斧Linux – 从LFS到Funtoo (150)

wget http://mirrors.xmu.edu.cn/gentoo/distfiles/eselect-python-20111108.tar.bz2 wget http://mirrors...
  • sanitywolf
  • sanitywolf
  • 2015年07月09日 18:02
  • 291

手斧Linux – 从LFS到Funtoo (151)

wget https://nodeload.github.com/gentoo/hwids/tar.gz/hwids-20121202 -O hwids-20121202.tar.gz wget h...
  • sanitywolf
  • sanitywolf
  • 2015年07月09日 18:03
  • 392

手斧Linux – 从LFS到Funtoo (6)

第3章 获得源码包 step1:创建lfs用户。 在ubuntu终端里用root用户执行以下命令: addusr lfs 不做特别设置,为了方便描述,将lfs用户的密码也设为lfs。 lfs...
  • sanitywolf
  • sanitywolf
  • 2014年12月17日 21:42
  • 285
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:手斧Linux – 从LFS到Funtoo (131)
举报原因:
原因补充:

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