Linux

多台電腦的 NFS 主目錄

  • January 10, 2021

我來這裡是想問一些花了我很多時間的事情,現在我不知道如何繼續,這是一個非常大(而且很棒)的社區。

好吧,問題是我正在嘗試為學校和大學做一個分佈式 Linux 系統,它從 Apache 伺服器獲取 SquashFS,通過 TFTP 載入 initrd 和核心,當它啟動時,它將所有系統載入到 RAM . 我們的想法是盡可能安全,當電腦關閉時,系統的所有數據都是乾淨的,但問題在於主文件夾……

主文件夾在 NFS 伺服器中,我正在嘗試為每個使用者創建不同的文件夾,使用電腦的 MAC 地址在 NFS 伺服器中創建一個文件夾並連接到它,但我不知道如何在啟動時傳遞 MAC 地址以首次創建文件夾,如果此 MAC 的主文件夾存在,請使用 fstab 連接到它,就像現在使用使用者證明文件夾一樣。

提前致謝!

我為 MythTV 系統做了非常相似的事情。每台無盤前端機器都使用 DHCP PXE 和 TFTP 進行網路引導。系統正在執行 Ubuntu 16.04 LTS。(IP 1.1.1.1 是客戶端機器,2.2.2.2 是伺服器)

在 /etc/dhcp/dhcpd.conf 根據 MAC 分配 IP 和主機名:

group {
   use-host-decl-names on;  #forces hostname to host
   host bedroom {
       hardware ethernet 00:00:00:00:00:00;
       fixed-address 1.1.1.1;
   }
}

TFTP 在啟動初始化時呼叫掛載腳本,該腳本根據主機名掛載 NFS 主目錄。瀏覽文件夾結構時,我使用主機名來提高可讀性;您可以解析 MAC 並將其用作文件夾名稱。TFTP pxelinux.cfg 預設文件:

LABEL linux
 DEFAULT vmlinuz-4.4.0-53-generic root=/dev/nfs initrd=initrd.img-4.4.0-53-generic nfsroot=2.2.2.2:/pxeroot init=/boot/mountscript.sh ip=dhcp rw

mountscript.sh:

#!/bin/bash
HOSTNAME=`hostname`
MOUNT_OPTS="rw,intr,async,bg,tcp"
mount -t nfs 2.2.2.2:/path/to/homes/home-${HOSTNAME} /home -O MOUNT_OPTS

exec /sbin/init </dev/console >/dev/console 2>&1

此外,/etc/exports 具有 NFS 導出設置,可將所需的主文件夾映射到唯一的靜態 IP 地址:

/path/to/homes/home-bedroom 1.1.1.1(rw,async,insecure)

必須手動添加新的 home 文件夾和每台新機器的 NFS 導出條目。

**請注意:**此範例適用於在主文件夾中儲存一些唯一配置資訊(主要是它所連接的電視的 IR 命令)的一次性單使用者電腦。它實現了每個 MAC 的主文件夾的既定目標,但我懷疑每個使用者的主文件夾是 joeqwerty 提到的您真正要尋找的。該解決方案不允許使用者登錄任何機器,並且需要為每個使用者、每台機器創建主文件夾。這也意味著,如果沒有混亂的符號連結網路,就沒有簡單的方法可以訪問不同電腦上的相同文件。

引用自:https://serverfault.com/questions/825836