在我們做專案的時候,我們會經常遇到一種情況,那就是想製作我們自己的乙個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...