iscsi+pxe 实现无盘安装,无盘启动-linux篇(组图)

2009年06月17日06:26  来源:
  iscsi+pxe 实现无盘安装,无盘启动-linux篇。

  PXE 环境设置

  PXE 环境需要dhcp, tftp, 看个人习惯,有很多组合, 我习惯用dnsmasq, 小巧又功能强大

  配置文件大致包含以下几项

  dhcp-range=192.168.1.50,192.168.1.150,255.255.255.0,12h

  dhcp-option=3,192.168.1.1

  expand-hosts

  domain=linuxce.cn

  dhcp-host=00:0c:29:34:67:9a,net:diskless

  dhcp-option=net:diskless,17,"iscsi:192.168.1.147::::iqn.2008.com.linuxce:linuxce.windiskless.20090210124113"

  dhcp-option=44,192.168.1.6

  dhcp-boot=pxelinux.0

  enable-tftp

  tftp-root=/tftpboot

  红色的两项是要给gpxe 使用,从gpxe 启动不支持大于1024cylinder的大硬盘,奇怪的是在虚拟机中把网卡认做成10M,启动速度奇慢

  在调试阶段出现最多的问题是拼写错误,最好不使用服务,而是在命令行下面带调试参数

  dnsmasq –d --log-dhcp

  pxe 的配置菜单如下

  default vesamenu.c32

  #prompt 1

  timeout 600

  display boot.msg

  F1 boot.msg

  F2 options.msg

  F3 general.msg

  F4 m.msg

  F5 rescue.msg

  menu background splash.jpg

  menu title Welcome to Fedora 10!

  menu color border 0 #ffffffff #00000000

  menu color sel 7 #ffffffff #ff000000

  menu color title 0 #ffffffff #00000000

  menu color tabmsg 0 #ffffffff #00000000

  menu color unsel 0 #ffffffff #00000000

  menu color hotsel 0 #ff000000 #ffffffff

  menu color hotkey 7 #ffffffff #ff000000

  label linux

  menu label ^Install or upgrade an existing system

  kernel vmlinuz

append initrd=initrd.img

  label iscsi

  menu label boot diskless linux from iscsi

  kernel vmlinuz_diskless

  append initrd=initrd_diskless

  label gpxe

  menu label boot diskless windows from iscsi

  kernel gpxe.lkrn

  后面会提到那两个启动文件vmlinuz_diskless, initrd_diskless如何获得

  iscsi 环境设置

  现在支持iscsi 服务的系统很多, 我用的是LHS-200 iscsi 存储器, 一个小巧的黑盒子,装上硬盘,开机就可使用,要高性能可以装一个PC 版本, 嫌麻烦可以到他的网站

  http://www.linuxce.cn

  抓一个已经配置好的虚拟机来用,

  Linux Home Server 谈不上有什么复杂配置, 首先登录

  第一次运行时配置一下重建存储,然后为无盘工作站划分一部分存储空间

然后为应用分配空间即可

安装linux

  和通常的linux 安装没有太多的区别,安装时只需要注意三点,安装源选ftp,安装硬盘选iscsi,分区必须手动指定,不能自动处理,发几张图就明白了,我用的是fedora 10, 把安装光盘的iso中image/pxeboot中的vmlinuz 和initrd.img 拷贝到PXE 需要的目录即可,安装测试是在vmwareworkstation中做,主要是方便截图

  硬盘选项选Advanced Storage Configure,加上iscsi 盘

需要手工分区

在pxe 中配置启动菜单

  安装完成后,需要把启动用的vmlinuz, initrd.img 拷贝到PXE 环境,由于这两个文件存储在iscsi服务器上,所以先要连到iscsi 服务器,挂接硬盘,才能拷贝出来

  连接iscsi 服务器

  iscsiadm -m discovery -t st-–p 192.168.1.147 -l  用fdisk -l可以看到多出来的硬盘, 挂上/dev/sdc1, 看一下 grub 下的配置,把对应的vmlinuz-xxx,initrd-xxx.img 拷贝到PXE 目录  一直很奇怪启动程序是如何找到 iqn 的,看一下initrd-xxx.img中的init 就明白了,原来是安装程序写死了

  #!/bin/nash

  mount -t proc /proc /proc

  setquiet

  echo Mounting proc filesystem

  echo Mounting sysfs filesystem

  mount -t sysfs /sys /sys

  echo Creating /dev

  mount -o mode=0755 -t tmpfs /dev /dev

  mkdir /dev/pts

  mount -t devpts -o gid=5,mode=620 /dev/pts /dev/pts

  mkdir /dev/shm

  mkdir /dev/mapper

  echo Creating initial device nodes

  mknod /dev/null c 1 3

  mknod /dev/zero c 1 5

  mknod /dev/systty c 4 0

  mknod /dev/tty c 5 0

  mknod /dev/console c 5 1

  mknod /dev/ptmx c 5 2

  mknod /dev/fb c 29 0

  mknod /dev/tty0 c 4 0

  mknod /dev/tty1 c 4 1

  mknod /dev/tty2 c 4 2

  mknod /dev/tty3 c 4 3

  mknod /dev/tty4 c 4 4

  mknod /dev/tty5 c 4 5

  mknod /dev/tty6 c 4 6

  mknod /dev/tty7 c 4 7

  mknod /dev/tty8 c 4 8

  mknod /dev/tty9 c 4 9

  mknod /dev/tty10 c 4 10

  mknod /dev/tty11 c 4 11

  mknod /dev/tty12 c 4 12

  mknod /dev/ttyS0 c 4 64

  mknod /dev/ttyS1 c 4 65

  mknod /dev/ttyS2 c 4 66

  mknod /dev/ttyS3 c 4 67

  /lib/udev/console_init tty0

  daemonize --ignore-missing /bin/plymouthd

  plymouth --show-splash

  echo Setting up hotplug.

  hotplug

  echo Creating block device nodes.

  mkblkdevs

  echo Creating character device nodes.

  mkchardevs

  echo "Loading crc32c module"

  modprobe -q crc32c

  echo "Loading iscsi_tcp module"

  modprobe -q iscsi_tcp

  echo "Loading mii module"

  modprobe -q mii

  echo "Loading pcnet32 module"

  modprobe -q pcnet32

  echo Bringing up eth0

  network --device eth0 --bootproto dhcp

  echo Attaching to iSCSI storage

  /bin/iscsistart-tiqn.2008.com.linuxce:linuxce.linuxdiskless.20090210124113-iiqn.2005-03.com.max:01.c33d08 -g 1 -a 192.168.1.147

  mkblkdevs

  resume UUID=6e8af94c-e235-47e8-907b-fc4c2e907346

  echo Creating root device.

  mkrootdev -t ext3 -odefaults,roUUID=316e2736-43b7-47b8-9b5d-40b89a52a192

  echo Mounting root filesystem.

  mount /sysroot

  cond -ne 0 plymouth --hide-splash

  echo Setting up other filesystems.

  setuproot

  echo Copying DHCP lease

  cp/var/lib/dhclient/dhclient.leases/sysroot/dev/.dhclient-eth0.leases

  loadpolicy

  plymouth --newroot=/sysroot

  echo Switching to new root and running init.

  switchroot

  echo Booting has failed.

  sleep -1  由于启动程序只需要从网络获得 vmlinuz, initrd.img两个文件就基本可以工作,所以传输量不大,时间延迟还过得去,但从gpxe 启动时间就非常长,几乎不能忍受

【来源:比特网】 (责任编辑:和讯网站)
推广
热点
推荐
相关新闻 进入 scsi
相关推荐
我有话说已有0位网友发言看看大家都说了啥

如果您还不是和讯注册用户,欢迎您注册

理财产品
感谢您的参与!
查看[本文全部评论]