- 新建挂载目录 rootfs
mkdir rootfs
- 挂载rootfs.img到创建目录
挂载之前进行一下根文件系统镜像的备份,防止修改错误导致根文件系统损坏无法还原
cp ubuntu.img ubuntu.img-bak
挂载根文件系统镜像
sudo mount ubuntu.img rootfs/
ls rootfs/
查看是否挂载成功
- 把
rootfs/
挂载到宿主机
使用挂载脚本mnt.sh
挂载
参考链接:Ubuntu 根文件系统定制
mnt.sh源码
#!/bin/bash
mnt() {
echo "MOUNTING"
sudo mount -t proc /proc ${2}proc
sudo mount -t sysfs /sys ${2}sys
sudo mount -o bind /dev ${2}dev
sudo mount -o bind /dev/pts ${2}dev/pts
# sudo mount /dev/sda1 ${2}
sudo chroot ${2}
}
umnt() {
echo "UNMOUNTING"
sudo umount ${2}proc
sudo umount ${2}sys
# sudo umount ${2}dev/sda1
sudo umount ${2}dev/pts
sudo umount ${2}dev
}
if [ "$1" == "-m" ] && [ -n "$2" ] ;
then
mnt $1 $2
elif [ "$1" == "-u" ] && [ -n "$2" ];
then
umnt $1 $2
else
echo ""
echo "Either 1'st, 2'nd or both parameters were missing"
echo ""
echo "1'st parameter can be one of these: -m(mount) OR -u(umount)"
echo "2'nd parameter is the full path of rootfs directory(with trailing '/')"
echo ""
echo "For example: ch-mount -m /media/sdcard/"
echo ""
echo 1st parameter : ${1}
echo 2nd parameter : ${2}
fi
挂载命令:
sudo ./mnt.sh -m rootfs/
挂载目标文件后需要加/
挂载成功后,终端用户显示为root
- 修改根文件系统镜像
此时即可在宿主机的操作环境下对根文件系统进行修改,可直接使用下载指令安装根文件系统所需的命令,下载的指令会直接安装到根文件系统中 - 退出根文件系统镜像挂载
exit
- 从宿主机卸载根文件系统镜像
卸载命令:
sudo ./mnt.sh -u rootfs/
- 卸载根文件系统镜像挂载点
sudo umount rootfs
成功卸载根文件系统镜像后,改动已保存到根文件系统镜像中
总结:本文主要是使用chroot命令把根文件系统挂载到宿主机上进行修改操作