如何无盘启动Linux

如何无盘启动Linux

无盘启动意味着一台客户端电脑在启动操作系统时没有任何的磁盘存储介质。在这种情形之下,电脑能够通过网络从远程NFS服务器上加载内核和根文件系统。在这过程中可能会用到多种不同的方法来从NFS服务器上加载内核和根文件系统:RARP,BOOTP或是DHCP协议。在这个指导教程中,我会使用BOOTP/DHCP协议,因为它们能够被大多数的网卡所支持。

无盘计算机的优势

想象一下你的办公室内有30台电脑,每一台都需要使用相同的应用程序。如果你作为管理这些电脑的管理员,你会怎么做?如果你在每一台电脑上安装应用程序,那只是在浪费你的时间。另一方面来说,一套无盘系统就能解决你的问题。有了一套无盘系统,你只需在中央NFS服务器上安装需要的程序,然后通过网络启动这30台客户机即可。

需要什么

两台或更多的装备有支持DHCP协议的网卡的Linux电脑。这些将扮演NFS服务器角色的电脑应当配有硬盘,其它客户机不需要任何的硬盘。服务器和客户机需要连接到同一个本地网络之内。

设置一个无盘系统共需要五步。

  1. 安装所需的包
  2. 配置TFTP服务器
  3. 配置DHCP服务器
  4. 配置NFS服务器
  5. 启动无盘客户机

在这个指导教程中,我假设作为启动服务器的电脑运行的是 Ubuntu。如何你正在使用其它的Linux发行版,原理是一样的。

第一步:安装所需的包

像下面这样使用 apt-get 命令来安装所有需要的包。


  1. $ sudo apt-get install dhcp3-server tftpd-hpa syslinux nfs-kernel-server initramfs-tools

第二步:配置TFTP服务器

TFTP服务器是一个小型FTP服务器,需要用它来在本地网络中的客户机和服务器之间自动传输启动文件。

向/etc/default/tftpd-hpa中添加以下行:


  1. RUN_DAEMON="yes"
  2. OPTIONS="-l -s /var/lib/tftpboot/"

接着,创建一个启动文件夹。


  1. $ sudo mkdir -p /var/lib/tftpboot/pxelinux.cfg

复制引导程序镜像。


  1. $ sudo cp /usr/lib/syslinux/pxelinux.0 /var/lib/tftpboot

像下面这样创建一个默认启动配置文件。


  1. $ sudo vi /tftpboot/pxelinux.cfg/default


  1. LABEL Ubuntu
  2. KERNEL vmlinuz
  3. APPEND root=/dev/nfs initrd=initrd.img nfsroot=10.10.101.1:/nfsroot ip=dhcp rw

注意:

  • "root=/dev/nfs"表示服务器上的网络文件系统(不需要修改)。
  • "initrd=initrd.img"是一个用于系统启动的启动脚本。
  • "nfsroot=10.10.101.1/nfsroot"指明了服务器的IP地址以及NFS共享文件夹的名称。用你的服务器地址来替换掉IP地址。
  • "ip=dhcp"表示客户端电脑使用DHCP寻址方案。
  • "rw"表示NFS共享是可读/可写的。

最后,重启TFTPD服务。


  1. sudo /etc/init.d/tftpd-hpa restart

第三步:配置DHCP服务

你还需要在NFS服务器上配置DHCP服务来允许使用/var/lib/tftpboot/pxelinux.0启动。假设你在使用10.10.101.0作为子网,你的配置可能看起来像下面这样子。


  1. $ sudo vi /etc/dhcp3/dhcpd.conf


  1. allow booting;
  2. allow bootp;
  3.  
  4. subnet 10.10.101.0 netmask 255.255.255.0 {
  5. range 10.10.101.2 10.10.101.254;
  6. option broadcast-address 10.10.101.255;
  7. option routers 10.10.101.1;
  8. filename "/pxelinux.0";
  9. }

然后重启DHCP服务。


  1. $ sudo service isc-dhcp-server restart

第四步:配置NFS服务器

创建一个保存客户机根文件系统目录的文件夹。


  1. $ sudo mkdir /nfsroot

接着,设置NFS服务器导出客户机根文件系统。向/etc/exports添加以下行来实现。


  1. /nfsroot *(rw,no_root_squash,async,insecure,no_subtree_check)

运行下列命令来重新载入修改过的/etc/exports。


  1. $ sudo exportfs -rv

默认情况下,Ubuntu在initrd镜像中不提供网络启动支持。因此你需要创建一个新的initrd.img文件。首先添加下列行到/etc/initramfs-tools/initramfs.conf中。


  1. BOOT=nfs
  2. MODULES=netboot

然后运行下列命令来创建一个新的initrd.img。


  1. $ sudo mkinitramfs -o /var/lib/tftpboot/initrd.img

将新的内核镜像文件复制到/var/lib/tftpboot中。


  1. $ sudo cp /boot/vmlinuz-`uname -r` /var/lib/tfftpboot/vmlinuz

是时候将整个根文件系统拷贝到/nfsroot中了。

假设您使用的是一个全新的Ubuntu服务器安装,你只需将文件系统拷贝到NFS的根之中。


  1. $ sudo cp -ax / /nfsroot

然后通过文本编辑器打开/nfsroot/etc/fstab 并添加以下行。


  1. /dev/nfs / nfs defaults 1 1

文件夹/var/lib/tftpboot应拥有全局读写权限。否则客户机无法从网络启动。


  1. $ sudo chmod -R 777 /var/lib/tfftpboot

最后,为了避免任何服务器设置出现错误,我推荐对运行DHCP服务的网卡使用静态IP。举个例子,如果网卡名为eth0,你的/etc/network/interfaces中的配置应该看起来像这样:


  1. iface eth0 inet static
  2. address 10.10.101.1
  3. netmask 255.255.255.0
  4. broadcast 10.10.101.255
  5. network 10.10.101.0

第五步:启动无盘客户机

在您完成了服务器上的配置之后,从网络启动你的客户机。要从网络启动一般你只需修改BIOS设置中的启动优先顺序即可。

如果客户机启动成功,您的无盘环境就配置好了。无需做任何修改就可以任意添加一台或多台客户端电脑。

原文发布时间:2014-08-01

本文来自云栖合作伙伴“linux中国”

时间: 2024-12-01 05:54:27

如何无盘启动Linux的相关文章

苹果iMac一体机无盘启动的方案与教程

iMac一体机无盘启动方案 现在很多的企业及网吧都会购买一批iMac机器放在前台或者是网吧的进门的地方.但是我们都知道Apple的OS系统对于大多数用户来说真的很陌生.真正会使用的用户屈指可数.所以就产生了一批买iMac一体机来安装Windows系统用户. 对于企业用户来说买几台iMac安装Windows系统其实很简单的问题.但是对于网吧用户.由于现在80%以上是无盘网吧.所以iMac从无盘启动变成一个很现实的问题. 研究够iMac的朋友可能都知道.iMac的机器是不能像普通PC机一样在BIOS

利用PXE实现无人值守无盘安装Linux

什么是PXE: PXE(preboot execute environment)是由Intel公司开发的最新技术,工作于Client/Server的网络模式,支持工作站通过网络从远端服务器下载映像,并由此支持来自网络的操作系统的启动过程,其启动过程中,终端要求服务器分配IP地址,再用TFTP(trivial file transfer protocol)或MTFTP(multicast trivial file transfer protocol)协议下载一个启动软件包到本机内存中并执行,由这个

Linux U盘 启动盘

/****************************************************************************** * Linux U盘 启动盘 * 说明: * 之前一直有个想法,那就是将x86的系统放在U盘中,像ARM那样做,但一直也不知 * 道大概要怎么查资料,最近搞redhat,查到了一些相关资料,记录一下. * * 2017-3-6 深圳 南山平山村 曾剑锋 *******************************************

百台机器的网吧网络无盘组网方案

100台机器的网吧网络组网方案要怎么做? 对于100台机器的网吧网络需要采用一台服务器引导50台左右的工作站成立专门以上网冲浪和影视为主的服务区;另一台服务器引导另外50台工作站成立专门以游戏为主的服务区,在这其中所有PC机皆为无盘启动方式. 在互联网接入方面,可以选择通过两条ADSL线路接入,每条线路分别作为两部分工作站的外网访问出口.对于主干线路上的交换机,可以采用带两个千兆模块的网管型的交换机,它具有可以划分基于802.1Q的VLAN和基于端口的VLAN,而此方案在实际的应用中必须要设置V

windows2003系统无盘终端网组建详细教程(1/3)

本文将介绍Windows.NET Server无盘终端网的组建,无盘部分采用PXE(Preboot eXecutionEnvironment,远程引导技术)或RPL(Remote Initial Program Load,远程启动服务)技术来实现,终端部分则采用Windows.NET Server Standard Server build 3607简体中文版(以下简称Windows.NET Server)中自带的终端服务来实现,带你一步步达成在最低档无盘工作站(CPU可为486级或更低)上流畅

如何通过U盘启动安装Linux

1.下载UNetbooin:http://unetbootin.sourceforge.net/ 2.完全格式化U盘 3.使用UNetbooin制作启动安装盘(完成后不要重启,而是选择exit) 4. 打开U盘 1)把syslinux文件下的vmlinuz 和 initrd.img  复制一份到U盘根目录下.(不同发型版这两个文件存放的目录名不一样,只要把他们找出来拷贝一份到U盘根目录即可) 2)删除u盘中的Packages文件夹,将iso文件复制到u盘根目录下. 5. 将U盘到需要安装的机器,

在Linux系统下用DD命令制作ISO镜像U盘启动盘

  我的当前的系统是Linux(版本Xubuntu),之前是通过软通牒(UltraISO)在Windows系统下制作了这个Linux系统的U盘启动盘,然而在Linux系统下通过系统本身集成的DD命令,来实现在Linux系统下制作Linux系统的ISO系统U盘启动盘,一行简单的代码就可以搞定.可以顺利给没有系统或需要重装系统的电脑,通过这个制作的U盘来安装ISO镜像系统. 需要的工具:Linux系统.U盘.ISO镜像文件. 首先在Linux系统中打开终端,使用DD命令,格式如下: sudo dd

制作用U盘启动的Linux系统

  制作用U盘启动的Linux系统的简单步骤: 一.对U盘进行处理 1.分区:(插上U盘) # fdisk /dev/sdb d Enter 删除原有分区 n Enter 新建一个主分区 w Enter 保存设置 # partprobe /dev/sdb 刷新U盘 2.设定U盘分区为活动分区 # fdisk /dev/sdb a Enter 设定为活动分区 1 Enter 选择分区 3.对硬盘分区进行格式化,格式化成ext3格式 # mkfs.ext3 /dev/sdb1 二.装filesyst

Linux系统怎么制作U盘启动盘

不过互联网这个东西是资料是无穷无尽的,终于在linuxdeepin的官网下发现了这个"Unetbootin".关于Unetbootin的介绍我也就不多说了,自己百度去!! 如何安装Unetbootin 在Ubuntu系统下执行 sudo apt-get install unetbootin 然后插入U盘,运行Unetbootin   设置"光盘镜像":选择已经下载的ISO 文件,并选择您的 USB 盘符(一般程序会自动识别USB盘符).上面选项设置完毕后,点击&qu