Ubuntu-base 根文件系統構建


根文件系統下載地址http://cdimage.ubuntu.com/ubuntu-base/releases/

Ubuntu 針對不同的 CPU 架構提供相應的 ubuntu base 根文件系統,
amd64(64 X86)armhfi386(32 X86)powerpcppc64el 等系統的
我這邊使用的是ubuntu-base-16.04.6-base-arm64.tar.gz

 

1:cd /home/s/Desktop 

  mkdir ubuntu_rootfs
2:cp  ubuntu-base-16.04.6-base-arm64.tar.gz /home/s/Desktop/ubuntu_rootfs 

3:sudo tar -vzxf  ubuntu-base-16.04.6-base-arm64.tar.gz

4: 需要在 PC Ubuntu 上安裝 qemu 工具,命令如下:

sudo apt-get install qemu-user-static

將剛剛安裝的 qemu-user-static 拷貝到剛剛解壓出來的 ubuntu base 目錄中,也就是
ubuntu_rootfs/usr/bin 目錄下,命令如下:

arm:
sudo cp /usr/bin/qemu-arm-static /home/s/Desktop/ubuntu_rootfs/usr/bin/
arm64:

sudo cp /usr/bin/qemu-aarch64-static /home/s/Desktop/ubuntu_rootfs/usr/bin/ 

5:設置軟件源

我們在 ubuntu 下使用 apt-get 安裝軟件的時候,是從網上下載軟件並安裝的,因此需要指
定軟件源。

sudo cp /etc/resolv.conf /home/s/Desktop/ubuntu_rootfs/etc/resolv.conf
sudo gedit /home/s/Desktop/ubuntu_rootfs/etc/apt/sources.list 在此文件最后面
添加軟件源 

 1 #中科大源
 2 deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
 3 deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
 4 deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
 5 deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
 6 deb http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe
 7 deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial main multiverse restricted universe
 8 deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-backports main multiverse restricted universe
 9 deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-proposed main multiverse restricted universe
10 deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-security main multiverse restricted universe
11 deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ xenial-updates main multiverse restricted universe

6:在主機掛載並配置根文件系統
(1)編寫一個mount腳本

1 #!/bin/bash
2 echo "MOUNTING"
3 sudo mount -t proc /proc /home/s/Desktop/ubuntu_rootfs/proc
4 sudo mount -t sysfs /sys /home/s/Desktop/ubuntu_rootfs/sys
5 sudo mount -o bind /dev /home/s/Desktop/ubuntu_rootfs/dev
6 sudo mount -o bind /dev/pts /home/s/Desktop/ubuntu_rootfs/dev/pts
7 sudo chroot /home/s/Desktop/ubuntu_rootfs

(2)編寫一個unmount腳本

1 #!/bin/bash
2 echo "UNMOUNTING"
3 sudo umount /home/s/Desktop/ubuntu_rootfs/proc
4 sudo umount /home/s/Desktop/ubuntu_rootfs/sys
5 sudo umount /home/s/Desktop/ubuntu_rootfs/dev
6 sudo umount /home/s/Desktop/ubuntu_rootfs/dev/pts

 

最后給予 mount.sh unmount.sh 這兩個 shell 腳本可執行權限,命令如下:
sudo chmod 777 mount.sh unmount.sh

7:執行

./mount

8:安裝常用的命令和軟件

apt update
apt install sudo
apt install vim
apt install kmod
apt install net-tools
apt install ethtool
apt install ifupdown
apt install language-pack-en-base
apt install rsyslog
apt install htop

 

 

 

制作過程中遇到的問題

1:直接執行chroot MyRootDir出現錯誤:chroot: failed to run command ‘/bin/bash’: No such file or directory

原因是缺少bash相關的庫,使用ldd查看庫並拷貝

 

 轉載自:https://www.cnblogs.com/charlieroro/p/9259675.html

 

2:bash: /usr/bin/groups: No such file or directory

這個錯誤是因為在安裝 qemu 工具出了問題,

我要制作的是64位的系統,所以應該拷貝的是qemu-aarch64-static,出問題的原因是拷貝的是qemu-arm-static

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM