如何製作ubuntu arm64的rootfs檔案

2021-08-30 13:37:53 字數 3388 閱讀 8855

在我們做專案的時候,我們會經常遇到一種情況,那就是想製作我們自己的乙個arm的rootfs。在這篇文章中,我們來介紹如何製作的詳細過程:

最新的ubuntu arm64的image可以在這裡找到:

$ mkdir ~/ubuntu-rootfs && cd ubuntu-rootfs
$ wget 

$ tar -xpf ubuntu-base-16.04.2-base-arm64.tar.gz

user@user:~/ubuntu-rootfs$ ls

bin dev home media opt root sbin sys usr

boot etc lib mnt proc run srv tmp var

我們可以使用如下的指令來完成對qemu-user-static的安裝

$ pwd

/home/user/ubuntu-rootfs

$ apt-get install qemu-user-static

$ cp /usr/bin/qemu-aarch64-static usr/bin

$ cp -b /etc/resolv.conf etc/

在這裡我們要注意的是我們針對arm64的qemu-user-static安裝的檔案是qemu-aarch64-static。

user@user:~$ ls ch-mount.sh 

ch-mount.sh

user@user:~$ chmod a+x ch-mount.sh

user@user:~$ sudo bash ch-mount.sh -m ubuntu-rootfs/

[sudo] user 的密碼:

mounting

root@user:/#

這樣我們就進入到chroot的環境中了。

運用如下的命令來更新系統,並安裝所需要的包。依賴網路環境,安裝的時間可能會有差異。

root@user:/# apt-get update

root@user:/# apt-get install language-pack-en-base sudo ssh net-tools ethtool wireless-tools lxde xfce4-power-manager xinit xorg network-manager iputils-ping rsyslog lightdm-gtk-greeter alsa-utils gnome-mplayer lightdm bash-completion lxtask htop python-gobject-2 python-gtk2 synaptic --no-install-recommends

# useradd -s '/bin/bash' -m -g adm,sudo yourusername

# echo "set password for yourusername:"

# passwd yourusername

# echo "set password for root:"

# passwd root

# echo 'ubuntu.yourusername' > /etc/hostname
# apt-get install resolvconf

# dpkg-reconfigure resolvconf

127.0.0.1    localhost

127.0.1.1 yourhostname

# apt-get install tzdata

# dpkg-reconfigure tzdata

我們可以從我們的host中拷入我們想要的arm64的模組到系統中,比如:

# cp -r /opt/out/modules/3.4.5 ~/ubuntu-rootfs/lib/modules
在這裡,我們把我們想要定製的包拷入到lib之下的modules中。

我們可以建立/etc/init/ttys0.conf檔案,並寫入如下的內容:

start on stopped rc or runlevel=[12345]

stop on runlevel [!12345]

respawn

exec /sbin/getty -l 115200 ttys0 vt102

在host中可以同如下的命令來登入:

$ sudo start ttys0
等我們完成上面的工作後,我們就可以開始製作我們的rootfs檔案了。在上面我們已經把我們所需要的檔案拷入到相應的檔案目錄之中了。

root@user:/# exit          

exit

user@user:~$ pwd

/home/user

user@user:~$ ./ch-mount.sh -u ubuntu-rootfs

$ dd if=/dev/zero of=ubuntu-rootfs.img bs=1m count=2048

$ sudo mkfs.ext4 ubuntu-rootfs.img

$ mkdir  ubuntu-mount

$ sudo mount ubuntu-rootfs.img ubuntu-mount/

$ sudo cp -rfp ubuntu-rootfs/* ubuntu-mount/

$ sudo umount ubuntu-mount/

$ e2fsck -p -f ubuntu-rootfs.img

$ resize2fs -m ubuntu-rootfs.img

這樣最終,我們生成了我們所需要的ubuntu-rootfs.img檔案:

user@user:~$ ls ubuntu-rootfs.img -hal

-rw-rw-r-- 1 user user 2.0g 10月 31 16:23 ubuntu-rootfs.img

user@user:~$ file ubuntu-rootfs.img

ubuntu-rootfs.img: linux rev 1.0 ext4 filesystem data, uuid=9ed3cd8b-e81a-4ec9-a8e0-bd185f223936 (needs journal recovery) (extents) (large files) (huge files)

64 python 模組製作

在python中,每個python檔案都可以作為乙個模組,模組的名字就是檔案的名字。比如有這樣乙個檔案test.py,在test.py中定義了函式add test.py def add a,b return a b 那麼在其他檔案中就可以先import test,然後通過test.add a,b 來...

原生製作純淨64位winpe之一製作

實驗環境 1 windows server 8 beta 2 安裝waik sp1 實際使用工具copype.cmd imagex.exe dism.exe oscdimg 過程 1 在開始選單中開啟 部署命令提示符 2 輸入copype amd64 d 這樣製作64位的pe,如果是32位,將amd...

製作centos64映象,供openstack用

工具 2足夠的10g空間用來放置centos 3網絡卡介面 建立網口的方式是執行tunctl,將預設建立tap0網口 4 tightvnc viewer用於遠端登入centos開始安裝過程 其他說明 qcow2在6.4版本裡支援不好,所以建立為raw image.fixme 操作步驟 如下是命令 1...