本文将通过下面的九个步骤,为IBM BladeCenter HS20刀片服务器去创建一个可启动的磁盘(驱动器),自安装硬盘驱动,运行SUSE Linux企业服务器10。(这些步骤也可以适用于其它的刀片服务器)。当系统第一次从这个驱动启动时,它将会自动地开始在磁盘上安装Linux,这种操作可以减轻操作系统的预加负荷并且减轻用户的工作量。

从两个系统开始:

·系统A用SLES10预加载,grub作为启动加载器。它有两个SCSI磁盘接口,但是只有第一个被使用。

·系统B是一个只有一个磁盘驱动器的空系统,它没有操作系统的加载。我们将用系统A给系统B准备自安装的硬盘驱动器。

首先是我们制作一个自安装的磁盘。用两个分区格式化磁盘:

·第一个(小一些的)分区将包含SUSE安装介质;我们把它称作安装分区。

·第二个(大一些的)分区是为操作系统准备的;我们称之为操作系统分区。

第一步:正确的cabling

将两个系统的电源都关闭,从系统B拔掉磁盘(磁盘B),把磁盘B插入系统A的第二个SCSI磁盘接口。然后从它自己的磁盘(磁盘A)启动系统,也就是第一个SCSI磁盘。

第二步:磁盘B分区

使用fdisk命令给磁盘B分区。如果你使用SCSI磁盘,磁盘名为/dev/sdb(如果你使用另一种类型的磁盘,例如,一个IDE磁盘,因此需要调整名称。)你可以使用fdisk –l命令来查看你磁盘设备的名称。

a.运行fdisk /dev/sdb

b.输入d来删除已经存在的分区。如果你的磁盘为空你也可以跳过这一步。

c.输入n来添加一个新的分区。通过选择主分区和选择一号作为分区号,来创建安装分区作为主分区。接下来,分配一个扇区从1到900(大概6.3GB是合适的,因为SUSE安装介质需要大概4.3GB)来展示列表1。你可以根据需要来调整。

列表1:创建安装分区

blade8:~ # fdisk /dev/sdb The number of cylinders for this disk is set to 8924. There is nothing wrong with that, but this is larger that 1024, and could in certain setups cause problems with: 1) software that runs at boot time (e.g., old versions of LILO) 2) booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4) : 1 First cylinder (1-8924, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-8924, default 8924) : 900 Command (m for help):

d.输入n来创建另一个分区(操作系统分区)如下列列表2所示:

列表2:创建操作系统分区

Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4) : 2 First cylinder (901-8924, default 901): Using default value 901 Last cylinder or +size or +sizeM or +sizeK (1-8924, default 8924) : Using default value 8924 Command (m for help):

但是在这个分区上不要存储任何数据;在SUSE安装过程中这个分区将被格式化。

e.输入a来在第一个分区(安装分区)切换启动标记,如下列列表3所示。选中使分区1可启动。

列表3:使安装分区可启动

Command (m for help): a Partition number (1-4) : 1

f.输入w来写入所有分区信息到表格并且退出分区,如列表4所示:

列表4:写入分区信息

Command (m for help): w The partition table has been altered; Calling ioctl() to re-read partition table. Syncing disks.

这一步将把变化提交到磁盘。

现在就已成功地将磁盘B分区。

第三步:格式化分区

用ext3文件系统来格式化磁盘B的第一个分区:

列表5:格式化第一个分区

blade8:~ # mkfs.ext3 /dev/sdb1 mke2fs 1.38 (30-Jun-2005) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 904960 inodes, 1807304 blocks 90365 blocks (5.00%) reserved for the super user First data block=0 56 block groups 32768 blocks per group, 32768 fragments per group 16160 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done The filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -I to override.

第四步:安装grub 启动程序

如下所示在磁盘B的第一个分区安装grub启动程序:

a.挂载第一个分区到文件夹,例如/mnt/sdb. 运行 mount /dev/sdb1 /mnt/sdb.

b. 从/boot/grub文件夹复制grub 启动文件到/mnt/sdb/boot/文件夹;包括grub进程文件和grub配置文件。

c.输入下面的命令来安装grub到磁盘B的第一个分区,如下列表六所示:grub-install --root-directory=/mnt/sdb /dev/sdb1 -recheck:

列表6:安装grub

blade8:~ # grub-install -root-directory=/mnt/sdb /dev/sdb1 -recheck Probing devices to guess BIOS drives. This may take a long time. Installation finished. No error reported. This is the contents of the device map /mnt/sdb/boot/grub/device.map. Check if this is correct or not. If any of the line is incorrect, Fix it and re-run the script 'grub-install'. (fd0) /dev/fd0 (hd0) /dev/sda (hd1) /dev/sdb

你已经成功地制作了磁盘B的带grub的可启动的磁盘安装分区。接下来,当磁盘启动时你需要使grub开始SUSE安装程序。首先,你需要复制安装内核和initrd文件到安装分区,然后需要准备好grub配置文件。

第五步:为安装准备内核

通过从SUSE安装ISO文件来复制安装内核,从而为安装准备好内核。创造一个/mnt/sdb/boot文件夹,然后从ISO文件/boot/i386/loader/复制linux文件和initrd到新的文件夹。