本文介紹的是利用nfs掛載根檔案系統。github倉庫:
startnfs.sh:
在宿主機上建立乙個tap網路,對應的網路裝置為tap0。host_ip=192.168.1.1
net_number=192.168.1.0
net_mask=255.255.255.0
nfs_root=~/work/rootfs
sudo apt-get install nfs-kernel-server
sudo apt-get install uml-utilities
if [ ! -e /etc/exports.bak ];then
sudo cp /etc/exports /etc/exports.bak
fisudo echo "$ *(rw,sync,no_subtree_check,no_root_squash)" > /etc/exports
sudo /etc/init.d/nfs-kernel-server restart
tap=$(ifconfig tap0 | head -n 1 | awk '')
if [ x$ = x ];then
sudo tunctl -u $(whoami) -t tap0
sudo ifconfig tap0 $
sudo route add -net $ netmask $ dev tap0
sudo sh -c "echo 1 > /proc/sys/net/ipv4/ip_forward"
fi
關鍵是傳入cmdline選項:qemu-system-arm -m vexpress-a9 \
-smp 4 \
-m 1024m \
-kernel linux-4.0/arch/arm/boot/zimage \
-dtb linux-4.0/arch/arm/boot/dts/vexpress-v2p-ca9.dtb \
-net nic -net tap,ifname=tap0,script=no \
-nographic
root=/dev/nfs rw nfsroot=$:$,nolock ip=$
以及對應的qemu選項
-net nic -net tap,ifname=tap0,script=no
這裡的qemu選項指定要虛擬網絡卡,並且把虛擬機器的網路加到tap0中。
如果我們使用的arm64平台,那麼qemu的命令會有些差異:
主要差異在於qemu傳入的選項發生了變化:qemu-system-aarch64 -machine virt \
-cpu cortex-a57 \
-machine type=virt \
-nographic -m 2048 \
-smp 2 \
-kernel linux-4.0/arch/arm64/boot/image \
-netdev tap,id=tap0,ifname=tap0,script=no \
-device virtio-net-device,netdev=tap0
「-netdev tap,id=tap0,ifname=tap0,script=no」指定qemu虛擬機器網路裝置的後端。
「-device virtio-net-device,netdev=tap0」表示虛擬機器中的網路裝置,需要指定繫結上的netdev。
NFS掛載根檔案系統
首先確保你的檔案系統可以正常工作,通過nfs掛載只是幾個服務的事情而已,我的系統是ubuntu 10.04 既然是nfs伺服器,那麼就需要開啟相關的服務。首先來安裝吧 sudo apt get install nfs kernel server 有的服務直接安裝apt get 在10.04上不支援,...
NFS方式無法掛載根檔案系統
硬體平台 smart210 開發板環境 redhat6 這個小問題也是讓人困擾了好一下子。一直報錯重啟怎麼回事.分析總結一下。一 啟動開發板出現問題如下 二 分析問題 遇到問題不是去盲目的baidu google而是認真分析自己的錯誤。1 核心配置是否正確,應該把這一項選擇上 2 設定開發板使用nf...
nfs檔案系統掛載
1.首先把所有防毒軟體和防火牆都關了 2.在linux系統上用 setup 設定網路配置 3.將虛擬機器設為橋連 vm settings ethernet bridged 4.用 ifconfig eth0 192.168.1.16 設定你虛擬機器的ip位址 我的虛擬機器為192.168.1.16 ...