系統構建 NFS掛載根檔案系統

2021-09-12 11:36:06 字數 1802 閱讀 7547

本文介紹的是利用nfs掛載根檔案系統。github倉庫:

startnfs.sh:

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

在宿主機上建立乙個tap網路,對應的網路裝置為tap0。

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

關鍵是傳入cmdline選項:

root=/dev/nfs rw nfsroot=$:$,nolock ip=$
以及對應的qemu選項

-net nic -net tap,ifname=tap0,script=no
這裡的qemu選項指定要虛擬網絡卡,並且把虛擬機器的網路加到tap0中。

如果我們使用的arm64平台,那麼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

主要差異在於qemu傳入的選項發生了變化:

「-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 ...