admin管理员组文章数量:1568307
U盘根文件系统制作方法
首先准备一个稍微大一点的U盘,其次对U盘进行分区,然后将某个区当做根文件系统区,格式化成想要加载的文件系统类型,在将自己制作的rootfs目录下的东西都拷贝到这个区,最后在U盘第一个分区添加linux内核和grub配置文件。
(1)分区格式化
将U盘插入装有Linux系统的设备,然后使用fdisk命令进行分区:
fdisk /dev/sdx
输入 p:查询当前分区
输入 n:新建分区
p:是主分区
第几个分区
分区从哪个块开始
到哪个块结束
输入 d:删除分区
输入 w:保存修改
这里分两个区即可,第一个分区用来存储内核和grub配置文件,第二个分区用来做根文件系统。
第一个分区格式化成fat32文件系统,执行:
mkfs.vfat -F 32 /dev/sdx1
第二个分区格式化成自己想要的根文件系统类型,执行:
mkfs.ext4 /dev/sdx2 # 格式化为ext4分区
mkfs.ext3 /dev/sdx2 # 格式化为ext3分区
mkfs.ext2 /dev/sdx2 # 格式化为ext2分区
因为我这里只有mkfs.ext2命令,所以格式化成了ext2文件系统,这样U盘准备好了。
(2)拷贝rootfs到u盘根文件系统区
执行挂载
mount /dev/sdx2 /nfs
将rootfs中文件拷贝到分区中,注意同样要先改变所有权,执行
sudo hikchown root.root -R ./*
cp -ra ./rootfs/* /nfs
umount nfs
这样便准备好了u盘根文件系统分区!
(3)重新编译内核
需要让内核执行ext2文件系统,进入内核源码顶层目录
make menuconfig
按 / 键搜索 ext2,然后将对应项勾选重新编译
(4)拷贝内核和grub配置文件到第一个分区
将 EFI 和 重新编译后的内核 拷贝到U盘第一个分区中
mount /dev/sdx1 /nfs
cp -ra EFI bzImage /nfs
umount nfs
注:bzImage为内核文件,EFI内含grub配置文件
(5)修改grub配置文件
修改前
linux /bzImage console=ttyS0,115200n81
initrd /rootfs.cpio.gz
注释掉initrd
修改内核参数,如下
linux /bzImage root=/dev/sdb2 rw rootfstype=ext2 rootdelay=5 console=ttyS0,115200n81
#initrd /rootfs.cpio.gz
其中:
- root 指明挂载的u盘分区,需要根据实际情况调整
- rw 表示挂载后可读可写
- rootfstype 表示挂载的根文件系统类型
- rootdelay 表示延时5s后才挂载根文件系统,这是因为内核挂载的特殊rootfs识别u盘需要一定时间
至此,U盘根文件系统制作完成!
本文标签: 文件系统
版权声明:本文标题:根文件系统(四)——U盘文件系统制作 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/xitong/1727606293a1122662.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论