iscsi+pxe 实现无盘***,无盘启动-linux篇(组图)
日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 dhcp-host=00:0c:29:34:67:9a,net:diskless dhcp-option=net:diskless,17,"iscsi:192.168.1.147::::.linuxce:linuxce.windiskless.13" 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 # menu color sel 7 #ffffffff #ff000000 menu color title 0 #ffffffff # menu color tabmsg 0 #ffffffff # menu color unsel 0 #ffffffff # menu color hotsel 0 #ff000000 #ffffffff menu color hotkey 7 #ffffffff #ff000000 label linux menu label ^Install or upgrade an existing system kernel vmlinuzappend 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 版本, 嫌麻烦可以到他的网站 抓一个已经配置好的虚拟机来用, 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-.linuxce:linuxce.linuxdiskless.13-iiqn..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=316e-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 启动时间就非常长,几乎不能忍受
【来源:】
(责任编辑:和讯网站)
感谢您的参与!查看[]
script src="/track/track_xfh.js?ver=">pillarman 的BLOG
用户名:pillarman
文章数:48
访问量:135413
注册日期:
阅读量:5863
阅读量:12276
阅读量:393339
阅读量:1084451
51CTO推荐博文