在机房内通过网络安装方法和Ghost安装Solaris的介绍
随着Solaris的安装越来越简单,在单机上安装Solaris只需要有一个DVD光驱,点一点鼠标就可以完成。但是对于机房动辄几十台上百台的机器来说,装机是一件非常痛苦的事情。本文介绍网络安装Solaris的方法和通过Ghost安装Solaris,可以提高装机的效率。
网络PXE安装Solaris
网络安装Solaris在网站上和电子书都有非常详细的叙述,详细内容可以查阅:
http://docs.sun.com/app/docs/doc/819-0325/ejurp?l=zh&a=view
下面以我在机房装机的过程,简单的把重要的步骤列出来,仅供参考:
我所安装机房的机器配置是x86机器,P4 2.8G , 1G 内存,百兆的以太网,欲安装B80。网络安装最重要的就是配置服务器以及网络环境,按照手册里面所说,名称服务器,安装服务器,引导服务器都应该是不同的节点,但由于资源有限,我就将这几个服务器在同一个节点上实现。
首先是要将每台机子连到同一个局域网内,然后可以选择局域网内任何一台机子作为服务器。注意:建议选一台有高速IO和高速以太网出口的机子作为局域网内的服务器,否则网络会成为瓶颈。而且还要保证机房的每一台机器都可以通过网络引导,即支持PXE。选择好服务器,然后安装上DVD光驱,把Solaris B80的DVD盘放入。在Solaris中识别到即可。
创建安装文件镜像目录
# mkdir -p install_dir_path
install_dir_path表示要将光盘上的内容拷到硬盘上的目标目录,至少要有 4.3G 的剩余空间。
找到到光盘所在的目录,进入到 /Solaris_11/Tools/ 目录。运行下面的命令将驱动器中的 DVD 映像复制到安装服务器的硬盘上。
# ./setup_install_server install_dir_path
启动nfs
如果nfs没有启动,需要按照以下步骤启动nfs:
将下面一句添加到 /etc/dfs/dfstab 文件,使安装服务器可用于引导服务器。
share -F nfs -o ro,anon=0 -d "install server directory" install_dir_path
使用smf启动nfs服务并打开共享:
# svcadm enable svc:/network/nfs/server
# shareall
以上的步骤是非常简单的,而且不会出什么差错。
下面的步骤很关键,就是添加客户端和对DHCP的设置:
添加客户端
# ./add_install_client -d -s install_server_ip: install_dir_path SUNW.i86pc i86pc
以上命令就是表示将添加子网内的客户端。
对于以上参数的解释如下:
-d指定客户机使用 DHCP 来获取网络安装参数。
-s install_server:install_dir_path
指定安装服务器的名称和路径。
install_server 是安装服务器的主机名。nstall_dir_path 是 Solaris 10 DVD 映像的绝对路径。
client_name
是要从网络安装的系统的名称。就是命令行中的SUNW.i86pc。
platform_group
是要安装的系统的平台组。就是命令中的i86pc。
配置DHCP
要想让上一步的命令生效,需要对DHCP服务器进行配置。首先将局域网内的其他DHCP服务器关闭,在本机启动DHCP管理器:
/usr/sadm/admin/bin/dhcpmgr
按照向导一步一步先将DHCP服务器创建完成,然后看看局域网内的机器能不能分配到ip地址(这一步可以在其他操作系统中进行)。如果DHCP没有问题则需要配置DHCP服务器,供应商选项SinstNM, SinstIP4, SinstPTH, SrootNM, SrootIP4, SrootPTH, SbootURI是一定要配置的。
打开DHCP管理器的选项卡,然后逐一创建选项,具体的数值请参考手册中的介绍,然后选择供应商,类型选择SUNW.i86pc。
配置好选项后需要创建一个SUNW.i86pc的宏(macro)。创建好宏之后,填入以下参数:
Install server (SinstNM) : install_server_ip
Install server IP (SinstIP4) : install_server_ip
Install server path (SinstPTH) : install_dir_path
Root server name (SrootNM) : Solaris
Root server IP (SrootIP4) : install_server_ip
Root server path (SrootPTH) : install_dir_path/Solaris_10.1/Tools/Boot
Boot file (BootFile) : nbp.SUNW.i86pc
在上一步添加客户端的过程中,运行完命令行后会有一段类似的文字:
“If not already configured, enable PXE boot by creating
a macro called PXEClient:Arch:00000:UNDI:002001
which contains the following values:
Boot server IP (BootSrvA) : 192.168.1.200
This macro will be explicitly requested by the PXE boot.”
所以我们还需要创建一个PXEClient的宏。宏的名称就是这段文字中的PXEClient:Arch:00000:UNDI:002001,具体请参考各自服务器的输出。宏的内容与SUNW.i86pc的内容一样。
这样我们主要的工作就已经做完了。这时候选择一台局域网内的机器,重启然后选择网络启动,可以看到只要能够分配到ip并且读取到boot file那么就可以顺利进行安装了。安装的过程与光盘安装有少少不同,不过全部都是基于GUI界面安装的,非常方便。
可以参考另外一个非常完整的手册,不过是英文的:
http://tech.ddvip.com/2007-04/117595303122483.html
Ghost安装Solaris
对于机房来说,Ghost是最常使用的软件。通过尝试,可以使用Ghost来批量安装Solaris。主要原理就是利用机房的机器配置完全一样的特点,我们对每一台机器都采用了相同的分区结构,这样在一台机子上面安装好之后,将整个Solaris所在硬盘分区进行克隆。然后在其他的机子上进行恢复。Ghost可以将分区直接写为UFS,标记为BF。我们所需要做的工作就是安装Grub。
随便找一张Solaris安装盘,看到启动后的Grub菜单按c,进入grub>
找到硬盘上已安装的Solaris系统的位置
grub>find /platform/i86pc/multiboot
(hd0,2,a) ----上条语句的执行结果,显示Solaris系统启动分区。
我们也可以查找另一个文件:find /boot/grub/menu.lst
运行以下命令即可手动启动Solaris
grub>root (hd0,2,a)
Filesystem type is ufs, partition type 0x000000bf
grub>kernel$ /platform/i86pc/kernel/unix
grub>module$ /platform/i86pc/boot_archive
grub>boot
进入Solaris后,使用root身份安装grub,最后重新启动系统
#cd /usr/sbin
#installgrub -m /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c0d0s0 (重新安装grub)
输出:Updating master boot sector destorys existing boot managers (if any) Continue (y/n)? y
stage1 written to partition 1 sector 0 (abs 31455270)
stage2 written to partition 1, 233 sectors starting at 50 (abs 31455320)
stage1 written to master boot sector
重启之后Grub就应该可以使用了。
但是在我所安装的机房出现一个特别有意思的情况,就是无论用什么方式安装完Solaris之后都无法出现Grub菜单,启动系统后只能看到黑屏的左上角有大写的GRUB,然后就是一个闪闪的光标。这样的问题我遇到过几次,通过总结可能是因为硬盘分区表的问题,也就是说Grub在安装的时候并没有写入到MBR里面去。通过摸索,运行以下几条命令即可修复:
grub>root (hd0,2,a)
grub>setup (hd0)
grub>install /boot/grub/stage1 (hd0) /boot/grub/stage2 /boot/grub/menu.lst
grub>setup (hd0,2,a)