Ubuntu

使用 NFS 進行 PXE 引導:/sbin/init:沒有這樣的文件或目錄

  • February 24, 2012

我正在嘗試使用 ubuntu 客戶端設置 PXE 引導。

  • 在我的番茄路由器上創建了 dhcp-boot
  • 在我的 FreeNas 盒子上添加了一個 tftp 守護程序
  • 在我的 FreeNas 盒子上添加了 NFS 掛載
  • 將 Ubuntu 11.10 引導至 NFS 掛載
  • 我已經從 debootstrap 映像生成了 vmlinuz 和 initrd 並將它們複製到 tftp 根目錄。
  • 在 tftp 根目錄下創建了一個 pxelinux.cfg/default 文件

pxelinux.cfg/default 包含:

DEFAULT ubuntu-11.10

LABEL ubuntu-11.10
KERNEL vmlinuz-3.0.0-16-generic
APPEND root=/dev/nfs initrd=initrd.img-3.0.0-16-generic netboot=nfs nfsroot=192.168.1.160:/mnt/media/thinclient/base,nolock,ro ip=dhcp init=/linuxrc
ipappend 2

在啟動我的節點/客戶端時,它會載入 vmlinux 和 initrd,但在嘗試載入 /sbin/init 時會“恐慌”: 核心恐慌

如果程序正在訪問我的 nfs 伺服器並且我看到數據傳遞,我查看了 tcpdump。此外,如果我從我的 nfs 伺服器上的映像中刪除 /proc 或 /dev,節點會抱怨它缺少 /dev 和/或 /proc 目錄。

我也嘗試過傳遞 init=/bin/bash 但這引發了同樣的錯誤。

為什麼我的節點會拋出run-init: /sbin/init: no such file or directory錯誤?

這是我自己的錯(當然)。我沒有正確地將 /dev 節點複製到 nfs 伺服器。我認為這是問題所在並手動創建了 /dev 節點,但這也無法正常工作。

我最終做的是對本地 debootstrap 映像進行 tar 處理,將其 scp’ing 到 FreeBSD NFS 伺服器並在本地解壓縮它。

然後它完美地工作了。

引用自:https://unix.stackexchange.com/questions/32462