SlideShare a Scribd company logo
基于 UbuntuUbuntuUbuntuUbuntu 12.0412.0412.0412.04 LTSLTSLTSLTS ServerServerServerServer 的无盘工作站
4b3tt0r_at_gmail.com
很多情况下,无盘工作站还是被广泛应用的。如网吧、教学机构、科研机构
等,出于经济性、可维护性、安全性等方面考虑,无盘工作站都是比较不错的选
择。虽然近年来由于硬件——尤其是硬盘——的性价比较过去越来越高,经济性
已经不再是最大的考虑因素,但无盘工作站以其可维护性强、安全性高等特点,
仍然占有一席之地。
本文所描述的方法和步骤,是基于 Ubuntu Linux 系统的开源无盘工作站方
案,希望能够为人们提供一些帮助。
1.1.1.1. 环境
1.1.1.1. 服务器
数量:1 台
OS:Ubuntu Server 12.04.2 LTS(预装)
CPU:Intel Xeon 2.4 双核,2 颗
内存:4GB
硬盘:>2TB
2.2.2.2. 工作站
数量:1~154 台
OS:Ububtu Desktop 12.04.2 LTS
CPU:Intel 酷睿 i5
内存:2GB
硬盘:无
网卡:Realtek PCIe GBE(支持 PXE)
3.3.3.3. 客户端
数量:1 台
OS:Ububtu Desktop 12.04.2 LTS(预装)
CPU:Intel 酷睿 i5
内存:2GB
硬盘:80GB
网卡:普通 100M/1000M 兼容网卡
* 客户端用于在服务器上安装一个标准配置的工作站操作系统模板,一旦配
置成功,客户端也就没有存在的必要了。除硬盘和网卡需求外,客户端配置与工
作站应尽量保持完全一致。所以,客户端可以采用若干工作站中的一台,配上一
块硬盘即可。
4.4.4.4. 网络
子网:192.168.1.0/24
网关:192.168.1.1(禁用 DHCP 服务)
DNS:202.99.96.68,8.8.8.8
服务器:192.168.1.2
工作站:DHCP
客户端:192.168.1.3
2.2.2.2. 工作站配置
工作站设置非常简单,将设备连接完毕后,启动设备并按 DEL 键,进入 BIOS
Setup 界面。一般在 Advanced BIOS Features 里边可以找到一个 boot 顺序或 boot
优先级的选项,调整使 Network 或 PXE 选项作为第一个引导项。如果有必要,
选择正确的网卡作为引导设备。
有一个地方需要注意一下,某些主板会有一个“Memory Hole”选项,其值
是“15MB - 16MB”需要禁用掉,否则可能会在引导并加载 initrd.img 的时候出
现“Not enough memory to load specified image”错误,该选项的具体位置一般是
在 Advanced Chipset Features 里的北桥设置中。
选择完成后按 F10 保存并重启即可。
3.3.3.3. 服务器端软件安装
以下软件可以依次安装,也可以一条语句集中安装:
1.1.1.1. 安装 DHCPDHCPDHCPDHCP 服务
sudo apt-get install dhcp3-server
2.2.2.2. 安装 TFTPTFTPTFTPTFTP 服务
sudo apt-get install tftp-hpa
3.3.3.3. 安装 NFSNFSNFSNFS 服务
sudo apt-get install nfs-kernel-server
4.4.4.4. 安装 syslinuxsyslinuxsyslinuxsyslinux
sudo apt-get install syslinux
4.4.4.4. 配置 DHCPDHCPDHCPDHCP 服务
编辑/etc/dhcp/dhcpd.conf 文件,在其最尾部加上以下内容:
allow booting;
allow bootp;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.101 192.168.1.254;
option broadcast-address 192.168.1.255;
option routers 192.168.1.1;
option domain-name-servers 202.99.96.68, 8.8.8.8;
filename "/pxelinux.0";
}
host student01 {
hardware ethernet D0:27:88:59:C6:EB;
fixed-address 192.168.1.101;
}
文中 D0:27:88:59:C6:EB 为工作站 1 的 MAC 地址,192.168.1.101 是为这台工
作站分配的固定 IP 地址。通过这种形式,可以在不同的 host 段落,分别为不同
的 MAC 地址绑定特定的 IP 地址,使得每个工作站每次都能相同的 IP 地址。这
一特性,在接下来的作用是非常重要的。
此外请注意一下文中的 pxelinux.0,后文中会提到,这是一个重要的文件。
在保存文件后,重启 DHCP 服务:
sudo service isc-dhcp-server restart
5.5.5.5. 配置 TFTPTFTPTFTPTFTP 服务
1.1.1.1. 配置文件
打开/etc/default/tftpd-hpa 文件,确认其内容为:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/var/lib/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure"
2.2.2.2. 建立目录结构
建立目录/var/lib/tftpboot/pxelinux.cfg
sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg
创建/var/lib/tftpboot/pxelinux.cfg/default 文件,并将其内容设置为:
# PXE config
DEFAULT Linux
LABEL Linux
KERNEL vmlinuz
APPEND root=/dev/nfs initrd=initrd.img netboot=nfs
nfsroot=192.168.1.2:/var/lib/nfsroot ip=dhcp rw
最后一行的红色字体说明了工作站机器文件系统的存储位置。
接下来将 syslinux 引导文件 pxelinux.0 复制到/var/lib/tftpboot 目录下
sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot
这里的 pxelinux.0 文件就是上文中提到的那个重要的文件,它负责指导工作
站通过 TFPT 协议取得引导参数并继续加载系统内核并完成系统的启动。
* 此处应保持所有文件和目录隶属于 root:root,所有文件权限为 644,所有
目录权限为 755。如无特殊说明,下文中的文件也应遵循此规则,不再赘述。
3.3.3.3. 重启服务
输入以下命令重启 TFTP 服务
sudo service tftpd-hpa restart
这时,可以尝试重启工作站,如果出现类似如下内容
则说明此阶段配置成功。
4.4.4.4. 进阶配置
在多数情况下,我们希望每台工作站都到服务器上去加载属于自己独立的文
件内容,从而使得工作站之间的信息完全隔离。以下方法即可达到此目的。
首先要说明的是,在引导过程中,pxelinux.0 会通过 tftp 协议下载引导参数
配置文件,也就是上文中的/var/lib/tftpboot/pxelinux.cfg/default 文件。然而事实上,
在尝试加载这个文件之前,它会先尝试加载以自身主机 IP 地址标记的文件。
上图中我们看到有这么一行:
这里边的 C0A80165 是什么呢?就是 IP 地址 192.168.1.101 的 16 进制表示法。pxelinux.0
在加载 default 文件之前,正是要加载以这个 16 进制表示法命名的配置文件。因
此,如果我们在/var/lib/tftpboot/pxelinux.cfg 目录下创建一个 C0A80165 文件,内
容如下:
# PXE config
DEFAULT Linux
LABEL Linux
KERNEL vmlinuz
APPEND root=/dev/nfs initrd=initrd.img netboot=nfs
nfsroot=192.168.1.2:/var/lib/nfsroot/01 ip=dhcp rw
注意红色文字比上文多了个/01,很明显表示加载了这个配置文件的工作站,
其文件系统位于/01 子目录下。
到这里,我们可以得出结论:每台工作站具有不同的MAC地址,我们的DHCP
服务会为其分配固定的 IP 地址;每台工作站根据自己特定的 IP 地址,加载不同
的引导配置文件,从而加载特定的文件系统,就可以达到不同机器固定的加载不
同的文件系统的目的了。
6.6.6.6. 配置 NFSNFSNFSNFS 服务
1.1.1.1. 建立目录结构
创建目录/var/lib/nfsroot/01,作为工作站 1 的文件系统目录
sudo mkdir -p /var/lib/nfsroot/01
2.2.2.2. 配置文件
编辑/etc/exports 文件,在其最后加上如下内容:
/var/lib/nfsroot/01 *(rw,no_root_squash,async,insecure,no_subtree_check)
/var/lib/nfsroot/01 192.168.1.101(rw,no_root_squash,async,insecure,no_subtree_check)
* 注意第一行是临时性的,为的是在后文中供客户端验证 NFS 服务和部署文
件系统时使用,文件系统一旦部署完毕,即不再需要这一行。“*”的意思是
/var/lib/nfsroot/01 这个目录对于所有客户机具有相同的访问权限。
3.3.3.3. 重新加载配置
sudo exportfs -rv
4.4.4.4. 验证 NFSNFSNFSNFS
启动客户端,安装 nfs-common 包,使之支持 nfs 文件系统
sudo apt-get install nfs-comment
挂载 nfs 文件系统并尝试写入
sudo mount -t nfs 192.168.1.2:/var/lib/nfsroot/01 /mnt
sudo touch /mnt/test
ls -l /mnt | grep test
此时若能看到 test 文件创建成功,则 NFS 服务运行正常。
清理
sudo rm /mnt/test
7.7.7.7. 构建文件系统
1.1.1.1. 复制文件系统
确保 nfs 文件系统已经加载到客户端的/mnt,如果没有加载,在客户端上用
如下命令进行加载
sudo mount -t nfs 192.168.1.2:/var/lib/nfsroot/01 /mnt
将客户端文件系统完整复制到服务器(在客户端执行)
sudo cp -ax /. /mnt/.
sudo cp -ax /dev/. /mnt/dev/.
这个过程估计要耗费 30 分钟左右,视磁盘和网络速度,可能会有所出入。
2.2.2.2. 修改网络配置
编辑服务器上的/var/lib/nfsroot/01/etc/network/interfaces 文件,使其内容为:
auto lo
iface lo inet loopback
iface eth0 inet manual
3.3.3.3. 修改文件系统配置
编辑服务器上的/var/lib/nfsroot/01/etc/fstab 文件,使其内容为:
proc /proc proc defaults 0 0
/dev/nfs / nfs defaults 0 0
none /tmp tmpfs defaults 0 0
none /var/run tmpfs defaults 0 0
none /var/lock tmpfs defaults 0 0
none /var/tmp tmpfs defaults 0 0
8.8.8.8. 构建内核
我们的文件系统是基于 nfs 文件系统的,为了能让内核加载 nfs 文件系统,
需要两种手段:其一,重新编译内核,将 nfs 文件系统的支持直接编译到内核中,
而不是以模块的形式加载;其二,让系统启动时加载 initrd.img。
上文中 C0A80165 文件的 APPEND 那一行有写 initrd=initrd.img,意思就是要
用第二种方式支持 nfs 文件系统。
之所以不用重新编译内核的方式,是因为比较麻烦。
那么接下来问题的焦点就是如何构建 initrd.img 了。客户端系统中的
/initrd.img 是不能直接使用的,因为它被配置为从硬盘启动。如果想让它从 nfs
文件系统进行启动,需要进行如下配置:
1.1.1.1. 修改 initramfsinitramfsinitramfsinitramfs 配置
编辑客户端的/etc/initramfs-tools/initramfs.conf 文件,将其中的
BOOT=local
和
MODULE=most
分别改为
BOOT=nfs
和
MODULE=netboot
如果这个文件不存在,则说明客户端没有安装 initramfs-tools,需要预先安装
sudo apt-get install initramfs-tools
* 上述改动应该提前进行备份,否则下次客户端机器启动时将出现错误。
2.2.2.2. 重新生成 initrd.imginitrd.imginitrd.imginitrd.img
mkinitramfs -o ./initrd.img
同时将系统内核复制到当前目录
sudo cp -L /vmlinuz .
修改访问权限
sudo chmod 644 ./initrd.img ./vmlinuz
最 后 将 当 前 目 录 下 的 vmlinuz 和 initrd.img 文 件 复 制 到 服 务 器 的
/var/lib/tftpboot 目录下即可。
9.9.9.9. 验证
将工作站 1 接入网络,启动,应该在屏幕上依次看到
� DHCP 获取 IP 地址
� 获取并执行/pxelinux.0
� 读取/pxelinux.cfg/C0A80165
� 加载 vmlinuz
� 加载 initrd.img
� 加载 nfs 文件系统并完成系统启动
至此,Ununtu Linux 系统无盘工作站配置完毕。
* 考虑到安全问题,可以将上文中提到的服务器/etc/exports 中的临时权限删
除 , 并 通 过 exportfs 命 令 对 权 限 进 行 更 新 。 此 外 , 删 除 服 务 器
/var/lib/tftpboot/pxelinux.cfg/default 文件,使未授权的机器无法加载配置文件,从
而无法启动,也是不错的选择。

More Related Content

PDF
2018 普安 EonStor GSe Pro 产品线介绍 (簡中版)
PDF
网站存储经验谈pdf
PPT
鏡像檔案系統 Mirror File System : MFS
PDF
Use Alluxio to Unify Storage Systems in Suning
ODP
A possibility to install OS on CEPH
PDF
如何在 Tomcat 下安装 solr 4
PDF
Ox office現在。即未來(201509)
PPT
基于PXE实现部署Linux服务器
2018 普安 EonStor GSe Pro 产品线介绍 (簡中版)
网站存储经验谈pdf
鏡像檔案系統 Mirror File System : MFS
Use Alluxio to Unify Storage Systems in Suning
A possibility to install OS on CEPH
如何在 Tomcat 下安装 solr 4
Ox office現在。即未來(201509)
基于PXE实现部署Linux服务器

What's hot (20)

PPT
1221 探討 Windows Server 2008 WDS 部署服務
PDF
对MySQL应用的一些总结
PDF
Oracle dba必备技能 使用os watcher工具监控系统性能负载
PPT
MySQL新技术探索与实践
PPTX
MySQL新技术探索与实践
PPT
香港六合彩
PPTX
使用Ubuntu架設hadoop
PDF
MySQL优化、新特性和新架构 彭立勋
PDF
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
DOC
Linux必学的60个命令
PPT
PPT
WIN2003 - 介紹 V Mware, 並實地操作
PPT
内部MySQL培训.3.基本原理
PPT
MySQL源码分析.02.Handler API
PPT
Database.Cache&Buffer&Lock
PPTX
Db2 different basis_installa
PPTX
Redis介绍
PPTX
“云存储系统”赏析系列分享三:Sql与nosql
PDF
Mysql proxy cluster
1221 探討 Windows Server 2008 WDS 部署服務
对MySQL应用的一些总结
Oracle dba必备技能 使用os watcher工具监控系统性能负载
MySQL新技术探索与实践
MySQL新技术探索与实践
香港六合彩
使用Ubuntu架設hadoop
MySQL优化、新特性和新架构 彭立勋
dbdao.com 汪伟华 my-sql-replication复制高可用配置方案
Linux必学的60个命令
WIN2003 - 介紹 V Mware, 並實地操作
内部MySQL培训.3.基本原理
MySQL源码分析.02.Handler API
Database.Cache&Buffer&Lock
Db2 different basis_installa
Redis介绍
“云存储系统”赏析系列分享三:Sql与nosql
Mysql proxy cluster
Ad

基于Ubuntu 12.04 LTS Server的无盘工作站

  • 1. 基于 UbuntuUbuntuUbuntuUbuntu 12.0412.0412.0412.04 LTSLTSLTSLTS ServerServerServerServer 的无盘工作站 4b3tt0r_at_gmail.com 很多情况下,无盘工作站还是被广泛应用的。如网吧、教学机构、科研机构 等,出于经济性、可维护性、安全性等方面考虑,无盘工作站都是比较不错的选 择。虽然近年来由于硬件——尤其是硬盘——的性价比较过去越来越高,经济性 已经不再是最大的考虑因素,但无盘工作站以其可维护性强、安全性高等特点, 仍然占有一席之地。 本文所描述的方法和步骤,是基于 Ubuntu Linux 系统的开源无盘工作站方 案,希望能够为人们提供一些帮助。 1.1.1.1. 环境 1.1.1.1. 服务器 数量:1 台 OS:Ubuntu Server 12.04.2 LTS(预装) CPU:Intel Xeon 2.4 双核,2 颗 内存:4GB 硬盘:>2TB 2.2.2.2. 工作站 数量:1~154 台 OS:Ububtu Desktop 12.04.2 LTS CPU:Intel 酷睿 i5 内存:2GB 硬盘:无 网卡:Realtek PCIe GBE(支持 PXE) 3.3.3.3. 客户端 数量:1 台 OS:Ububtu Desktop 12.04.2 LTS(预装)
  • 2. CPU:Intel 酷睿 i5 内存:2GB 硬盘:80GB 网卡:普通 100M/1000M 兼容网卡 * 客户端用于在服务器上安装一个标准配置的工作站操作系统模板,一旦配 置成功,客户端也就没有存在的必要了。除硬盘和网卡需求外,客户端配置与工 作站应尽量保持完全一致。所以,客户端可以采用若干工作站中的一台,配上一 块硬盘即可。 4.4.4.4. 网络 子网:192.168.1.0/24 网关:192.168.1.1(禁用 DHCP 服务) DNS:202.99.96.68,8.8.8.8 服务器:192.168.1.2 工作站:DHCP 客户端:192.168.1.3 2.2.2.2. 工作站配置 工作站设置非常简单,将设备连接完毕后,启动设备并按 DEL 键,进入 BIOS Setup 界面。一般在 Advanced BIOS Features 里边可以找到一个 boot 顺序或 boot 优先级的选项,调整使 Network 或 PXE 选项作为第一个引导项。如果有必要, 选择正确的网卡作为引导设备。 有一个地方需要注意一下,某些主板会有一个“Memory Hole”选项,其值 是“15MB - 16MB”需要禁用掉,否则可能会在引导并加载 initrd.img 的时候出 现“Not enough memory to load specified image”错误,该选项的具体位置一般是 在 Advanced Chipset Features 里的北桥设置中。 选择完成后按 F10 保存并重启即可。 3.3.3.3. 服务器端软件安装
  • 3. 以下软件可以依次安装,也可以一条语句集中安装: 1.1.1.1. 安装 DHCPDHCPDHCPDHCP 服务 sudo apt-get install dhcp3-server 2.2.2.2. 安装 TFTPTFTPTFTPTFTP 服务 sudo apt-get install tftp-hpa 3.3.3.3. 安装 NFSNFSNFSNFS 服务 sudo apt-get install nfs-kernel-server 4.4.4.4. 安装 syslinuxsyslinuxsyslinuxsyslinux sudo apt-get install syslinux 4.4.4.4. 配置 DHCPDHCPDHCPDHCP 服务 编辑/etc/dhcp/dhcpd.conf 文件,在其最尾部加上以下内容: allow booting; allow bootp; subnet 192.168.1.0 netmask 255.255.255.0 { range 192.168.1.101 192.168.1.254; option broadcast-address 192.168.1.255; option routers 192.168.1.1; option domain-name-servers 202.99.96.68, 8.8.8.8; filename "/pxelinux.0"; } host student01 { hardware ethernet D0:27:88:59:C6:EB; fixed-address 192.168.1.101; } 文中 D0:27:88:59:C6:EB 为工作站 1 的 MAC 地址,192.168.1.101 是为这台工 作站分配的固定 IP 地址。通过这种形式,可以在不同的 host 段落,分别为不同 的 MAC 地址绑定特定的 IP 地址,使得每个工作站每次都能相同的 IP 地址。这 一特性,在接下来的作用是非常重要的。
  • 4. 此外请注意一下文中的 pxelinux.0,后文中会提到,这是一个重要的文件。 在保存文件后,重启 DHCP 服务: sudo service isc-dhcp-server restart 5.5.5.5. 配置 TFTPTFTPTFTPTFTP 服务 1.1.1.1. 配置文件 打开/etc/default/tftpd-hpa 文件,确认其内容为: # /etc/default/tftpd-hpa TFTP_USERNAME="tftp" TFTP_DIRECTORY="/var/lib/tftpboot" TFTP_ADDRESS="0.0.0.0:69" TFTP_OPTIONS="--secure" 2.2.2.2. 建立目录结构 建立目录/var/lib/tftpboot/pxelinux.cfg sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg 创建/var/lib/tftpboot/pxelinux.cfg/default 文件,并将其内容设置为: # PXE config DEFAULT Linux LABEL Linux KERNEL vmlinuz APPEND root=/dev/nfs initrd=initrd.img netboot=nfs nfsroot=192.168.1.2:/var/lib/nfsroot ip=dhcp rw 最后一行的红色字体说明了工作站机器文件系统的存储位置。 接下来将 syslinux 引导文件 pxelinux.0 复制到/var/lib/tftpboot 目录下 sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot 这里的 pxelinux.0 文件就是上文中提到的那个重要的文件,它负责指导工作 站通过 TFPT 协议取得引导参数并继续加载系统内核并完成系统的启动。
  • 5. * 此处应保持所有文件和目录隶属于 root:root,所有文件权限为 644,所有 目录权限为 755。如无特殊说明,下文中的文件也应遵循此规则,不再赘述。 3.3.3.3. 重启服务 输入以下命令重启 TFTP 服务 sudo service tftpd-hpa restart 这时,可以尝试重启工作站,如果出现类似如下内容 则说明此阶段配置成功。 4.4.4.4. 进阶配置 在多数情况下,我们希望每台工作站都到服务器上去加载属于自己独立的文 件内容,从而使得工作站之间的信息完全隔离。以下方法即可达到此目的。 首先要说明的是,在引导过程中,pxelinux.0 会通过 tftp 协议下载引导参数 配置文件,也就是上文中的/var/lib/tftpboot/pxelinux.cfg/default 文件。然而事实上, 在尝试加载这个文件之前,它会先尝试加载以自身主机 IP 地址标记的文件。 上图中我们看到有这么一行:
  • 6. 这里边的 C0A80165 是什么呢?就是 IP 地址 192.168.1.101 的 16 进制表示法。pxelinux.0 在加载 default 文件之前,正是要加载以这个 16 进制表示法命名的配置文件。因 此,如果我们在/var/lib/tftpboot/pxelinux.cfg 目录下创建一个 C0A80165 文件,内 容如下: # PXE config DEFAULT Linux LABEL Linux KERNEL vmlinuz APPEND root=/dev/nfs initrd=initrd.img netboot=nfs nfsroot=192.168.1.2:/var/lib/nfsroot/01 ip=dhcp rw 注意红色文字比上文多了个/01,很明显表示加载了这个配置文件的工作站, 其文件系统位于/01 子目录下。 到这里,我们可以得出结论:每台工作站具有不同的MAC地址,我们的DHCP 服务会为其分配固定的 IP 地址;每台工作站根据自己特定的 IP 地址,加载不同 的引导配置文件,从而加载特定的文件系统,就可以达到不同机器固定的加载不 同的文件系统的目的了。 6.6.6.6. 配置 NFSNFSNFSNFS 服务 1.1.1.1. 建立目录结构 创建目录/var/lib/nfsroot/01,作为工作站 1 的文件系统目录 sudo mkdir -p /var/lib/nfsroot/01 2.2.2.2. 配置文件 编辑/etc/exports 文件,在其最后加上如下内容: /var/lib/nfsroot/01 *(rw,no_root_squash,async,insecure,no_subtree_check) /var/lib/nfsroot/01 192.168.1.101(rw,no_root_squash,async,insecure,no_subtree_check) * 注意第一行是临时性的,为的是在后文中供客户端验证 NFS 服务和部署文 件系统时使用,文件系统一旦部署完毕,即不再需要这一行。“*”的意思是 /var/lib/nfsroot/01 这个目录对于所有客户机具有相同的访问权限。 3.3.3.3. 重新加载配置
  • 7. sudo exportfs -rv 4.4.4.4. 验证 NFSNFSNFSNFS 启动客户端,安装 nfs-common 包,使之支持 nfs 文件系统 sudo apt-get install nfs-comment 挂载 nfs 文件系统并尝试写入 sudo mount -t nfs 192.168.1.2:/var/lib/nfsroot/01 /mnt sudo touch /mnt/test ls -l /mnt | grep test 此时若能看到 test 文件创建成功,则 NFS 服务运行正常。 清理 sudo rm /mnt/test 7.7.7.7. 构建文件系统 1.1.1.1. 复制文件系统 确保 nfs 文件系统已经加载到客户端的/mnt,如果没有加载,在客户端上用 如下命令进行加载 sudo mount -t nfs 192.168.1.2:/var/lib/nfsroot/01 /mnt 将客户端文件系统完整复制到服务器(在客户端执行) sudo cp -ax /. /mnt/. sudo cp -ax /dev/. /mnt/dev/. 这个过程估计要耗费 30 分钟左右,视磁盘和网络速度,可能会有所出入。 2.2.2.2. 修改网络配置 编辑服务器上的/var/lib/nfsroot/01/etc/network/interfaces 文件,使其内容为: auto lo iface lo inet loopback iface eth0 inet manual
  • 8. 3.3.3.3. 修改文件系统配置 编辑服务器上的/var/lib/nfsroot/01/etc/fstab 文件,使其内容为: proc /proc proc defaults 0 0 /dev/nfs / nfs defaults 0 0 none /tmp tmpfs defaults 0 0 none /var/run tmpfs defaults 0 0 none /var/lock tmpfs defaults 0 0 none /var/tmp tmpfs defaults 0 0 8.8.8.8. 构建内核 我们的文件系统是基于 nfs 文件系统的,为了能让内核加载 nfs 文件系统, 需要两种手段:其一,重新编译内核,将 nfs 文件系统的支持直接编译到内核中, 而不是以模块的形式加载;其二,让系统启动时加载 initrd.img。 上文中 C0A80165 文件的 APPEND 那一行有写 initrd=initrd.img,意思就是要 用第二种方式支持 nfs 文件系统。 之所以不用重新编译内核的方式,是因为比较麻烦。 那么接下来问题的焦点就是如何构建 initrd.img 了。客户端系统中的 /initrd.img 是不能直接使用的,因为它被配置为从硬盘启动。如果想让它从 nfs 文件系统进行启动,需要进行如下配置: 1.1.1.1. 修改 initramfsinitramfsinitramfsinitramfs 配置 编辑客户端的/etc/initramfs-tools/initramfs.conf 文件,将其中的 BOOT=local 和 MODULE=most 分别改为 BOOT=nfs 和 MODULE=netboot 如果这个文件不存在,则说明客户端没有安装 initramfs-tools,需要预先安装 sudo apt-get install initramfs-tools * 上述改动应该提前进行备份,否则下次客户端机器启动时将出现错误。
  • 9. 2.2.2.2. 重新生成 initrd.imginitrd.imginitrd.imginitrd.img mkinitramfs -o ./initrd.img 同时将系统内核复制到当前目录 sudo cp -L /vmlinuz . 修改访问权限 sudo chmod 644 ./initrd.img ./vmlinuz 最 后 将 当 前 目 录 下 的 vmlinuz 和 initrd.img 文 件 复 制 到 服 务 器 的 /var/lib/tftpboot 目录下即可。 9.9.9.9. 验证 将工作站 1 接入网络,启动,应该在屏幕上依次看到 � DHCP 获取 IP 地址 � 获取并执行/pxelinux.0 � 读取/pxelinux.cfg/C0A80165 � 加载 vmlinuz � 加载 initrd.img � 加载 nfs 文件系统并完成系统启动 至此,Ununtu Linux 系统无盘工作站配置完毕。 * 考虑到安全问题,可以将上文中提到的服务器/etc/exports 中的临时权限删 除 , 并 通 过 exportfs 命 令 对 权 限 进 行 更 新 。 此 外 , 删 除 服 务 器 /var/lib/tftpboot/pxelinux.cfg/default 文件,使未授权的机器无法加载配置文件,从 而无法启动,也是不错的选择。