linux内核配置有三种,三种常用的root文件系统的内核配置选项

dd if=/dev/zero of=ramdisk_ext2 bs=1k count=11000

sudo losetup /dev/loop2 ramdisk_ext2

sudo mke2fs -m 0 /dev/loop2

mkdir tempdir -p

sudo mount -t ext2 /dev/loop2 tempdir/

sudo cp initramfs/* tempdir/ -rf

sudo umount tempdir

sudo losetup -d /dev/loop2

rm ramdisk_ext2.gz

rm tempdir -rf

gzip -9 ramdisk_ext2

说明:如果大家通过 make menuconfig 配置内核启动参数CONFIG_CMDLINE的时候,对具体参数不知道什么含义,

可以在内核源代码目录里面找到详细的说明,文档路径如下:

Documentation\kernel-parameters.txt

内核是如何挂载root文件系统的?

简单说,linux内核运行的最后阶段会执行mount_root() 函数,挂在root文件系统。

但是,整个过程,基于以下几点内容:

1. 内核只有支持了相应的root文件系统的驱动,才能挂载相应root文件系统。

-- CONFIG_BLK_DEV_RAM=y,使内核支持 root ramdisk 驱动

-- CONFIG_ROOT_NFS=y,使内核支持 root nfs 驱动

2. 通过内核启动参数CONFIG_CMDLINE的root选项可以让kernel运行到最后阶段决定加载何种文件系统的驱动

-- root=/dev/ram0 加载ramdisk root文件系统的驱动

-- root=/dev/nfs加载nfs root文件系统的驱动

3. 内核加载相应的 root文件系统驱动后,这些驱动程序就会让内核正常的挂载相应的root文件系统

root文件系统常用的格式有,ramfs、nfs、ramdisk、yaffs等

在调试阶段常使用的 root 文件系统有如下几个:

1. ramfs文件系统

ramfs文件系统比较简单,只需将制作好的busybox目录在内核config文件中指定一下就可以了。

主要关注下面两个配置:

CONFIG_BLK_DEV_INITRD=y

CONFIG_INITRAMFS_SOURCE="/home/lidongliang/root_fs"

CONFIG_CMDLINE="console=ttyS0,115200 mem=900M root=/dev/ram0 rootfstype=ramfs noinitrd init=/init"

- mem =512M 表示内核管理的物理内存大小

(进入shell后,可以通过 cat /proc/meminfo 查看内核管理的物理内存的情况)

- initrd 表示将ramdisk文件系统放到物理内存中的起始地址

- root=/dev/ram0 表示采用了哪种Root filesystem,ram0表示内存硬盘(ramdisk)

- init=/init 表示制定init进程,比如init=/sbin/init

2. nfs文件系统

前提1:网卡驱动工作正常

前提2:建立 nfs server (10.0.13.198:/opt/share/fs/nfs_rootfs)

只需在nfs 服务器上添加你的制作好的busybox目录,格式如下:

vi /etc/exports 添加如下内容:

/opt/share/fs/nfs_rootfs *(rw,sync,no_root_squash)

然后重启nfs:/etc/init.d/nfs-kernel-server restart

CONFIG_NETWORK_FILESYSTEMS=y

CONFIG_NFS_FS=y

CONFIG_NFS_V3=y

CONFIG_ROOT_NFS=y

- 使内核支持 root nfs

CONFIG_NFS_COMMON=y

CONFIG_CMDLINE="console=ttyS0,115200 mem=512M root=/dev/nfs rw nfsroot=10.0.13.198:/opt/share/fs/nfs_rootfs noinitrd init=/init ip=10.0.13.244:10.0.13.198:10.0.12.1:255.255.254.0:target:eth0:none"

- root=/dev/nfs 表示采用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值