近期客户公司打算给一台老服务器安装CentOS,计划是安装CentOS6,因为客户的服务器(HP G350)是个老款的服务器,不支持64bit,是于是从网上下载了CentOS-6.0-i386-bin-DVD.iso,准备刻盘才想起来这玩意是4.7G……坑爹呀!于是又找了一张CentOS-5.5-i386-bin-DVD.iso,兴冲冲的来到机房一看服务器哭了……NND丫光驱居然是CD的,想偷懒是不行了,于是乎用只能用U盘了
遇到的问题:
先用格式化成FAT32,然后用UltraISO把ISO写入硬盘映像……,选择USB-HDD+,再删除U盘里的除p_w_picpaths和syslinux的文件,再把CentOS-6.0-i386-bin-DVD.iso拷到U盘里(以前5.3和5.5都是这么做的)拷的时候才想起FAT32格式不支持4G以上的大文件……能再杯具点吗?那么就用syslinux来做吧。

第一步:给U盘分区
首先先查看了一下U盘的盘符输入:“sudo fdisk -l”显示表明我的U盘是/dev/sdb,将U盘卸载:sudo umount /dev/sdb
sudo fdisk /dev/sdb
1、Command (m for help):输入“p”查看U盘现有分区(Enter)
     我U盘以前在windows下用的,查看后显示有4个分区,这要一个个删除
2、Command (m for help):输入“d”删除分区(Enter)
      Partition number (1-4):输入“1”选择要删除的分区号(Enter)
     其它分区以此类推全部删除完
3、Command (m for help):输入“n”创建新的分区(Enter)
      e     extended
      p     primary partition(1-4)
     输入“p”(Enter)
4、Command (m for help):输入“1”(Enter)
5、First sector (2048-15974336,default 2048):直接Enter
      Last sector,+煌+size{K,M,G} (2048-15974336,default 15974336):输入“+1000M”(Enter)
     这个分区我分的是1000M大小
6、Command (m for help):输入“t”更改分区类型(Enter)
      Selected partition:输入“1”要更改类型的分区号(Enter)
      Hex code (type L to List codes):输入“b”转换分区格式
     Changed system type of partition 1 to b(W95 FAT32)
7、Command (m for help):输入“a”切换启动标志
      Partition number(1-4):输入“1”
8、分第二个分区,步骤同1到5的步骤,就是在第5步时不用输入大小,直接Enter就可以了
9、Command (m for help):输入“w”保存配置
     提示:WARNING:If you have created or modified any DOS 6.x
                   partitions,please see the fdisk manual page for additional information.
                  Syncing disks

 

第二步:格式化分区
1、格式化第一分区:sudo mkfs.msdos /dev/sdb1
提示:mkfs.msdos 3.0.9 (31 jan 2010)
2、格式化第二分区:sudo mkfs.ext2 /dev/sdb2
提示:
mke2fs 1.41.14 (22-Dec-2010)
文件系统标签=
操作系统:Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe blocks
435456 inodes, 1740544 blocks
87027 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1782579200
54 block groups
32768 blocks per group, 32768 fragments per group
8064 inodes per groupSuperblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632
正在写入inode表: 完成
Writing superblocks and filesystem accounting information: 完成
This filesystem will be automatically checked every 30 mounts or180 days, whichever comes first.  Use tune2fs -c or -i to override.

第三步:挂载分区及拷贝文件
1、在mnt下创建挂载
sudo mkdir /mnt/iso
创建ISO的挂载点
sudo mkdir /mnt/usb1
sudo mkdir /mnt/usb2
创建USB的挂载点

2、挂载ISO及USB
sudo mount -o -loop /home/CentOS-6.0-i386-bin-DVD.iso /mnt/iso
将CentOS6-i386的镜像挂载到/mnt/iso

sudo mount /dev/sdb1 /mnt/usb1
sudo mount /dev/sdb2 /mnt/usb2
将sdb1和sdb挂载到/mnt/usb1和usb2

将/mnt/iso内的isolinux拷贝到/mnt/sdb1/下
sudo cp /mnt/iso/isolinux /mut/sdb1/

将/mnt/sdb1下的isolinux目录改名为syslinux
sudo mv isolinux syslinux

将/mnt/syslinux目录下的isolinux.cfg改名为syslinux.cfg
sudo mv /mnt/syslinux/isolinux.cfg syslinux.cfg

在做到将ISO镜像里的文件isolinux复制sdb1时我的PC出问题了,所以到这一步我在笔记本的windows7上做的,用UltraISO将镜像里的文件提出来,把U盘插到机子上,这时win7认到一个1G的U盘,我将isolinux复制到这个U盘里就可以了

3、将镜像文件拷贝到sdb2
sudo cp -a CentOS-6.0-i386-bin-DVD.iso /mnt/sdb2/

4、将ISO里的p_w_picpaths拷贝到sdb2
sudo cp -a p_w_picpaths /mnt/sdb2/
要放到分区根目录下,与CentOS镜像文件一起


第四步:在windows下安装syslinux
将U盘插到win7的机子上,并下载syslinux-3.86.zip,解压后将syslinux/win32/目录下的syslinux.exe文件复制到U盘的第一个盘符
之前我下载的是syslinux-4.04.zip,可在开机引导时就是无法正常引导,于是换成了3.86就好了
运行CMD(在windows7下要用管理员权限运行CMD)
e:>syslinux.exe –m -a -s e:
e是U盘在我笔记本上的盘符

第五步,修改syslinux.cfg
1、打开syslinux.cfg将内容全删除,改成下面的
default linux  
prompt 1 
timeout 600 
display boot.msg  
F1 boot.msg  
F2 options.msg  
F3 general.msg  
F4 param.msg  
F5 rescue.msg  
label linux  
  kernel vmlinuz  
  append initrd=initrd.img  
label text  
  kernel vmlinuz  
  append initrd=initrd.img text  
label ks  
  kernel vmlinuz  
  append ks=hd:sdb1:/anaconda-ks.cfg initrd=initrd.img  
label local  
  localboot 1 
label memtest86  
  kernel memtest  
  append - 

PS:以上的这段是我遇到问题后在网上一哥们的博客里找到的他在装5.5时用改的,我就照猫画虎过来

第六步:安装测试
这回在机房的服务器上插上U盘引导安装,一切都正常了起来,还是挺快的。

过程中遇到的问题及解决:
第一个问题:error:not a com32r p_w_picpath
之前做完前面写的1-4步时我就拿U盘找了台PC试一下,以U盘启动后报错
error:not a com32r p_w_picpath
真是头痛,难到是syslinux版本的问题,在网上查了一下太多说版本问题的,无意间看到一哥们做U盘安装CentOS5.5的一个过程,觉的这可能是解决的办法,于是就做了第五步,做完后再试到是不报错了,但引导了几步就一直在报error卡在那里了,实在是不想再看报的error是什么了,想想那么就改syslinux版本吧,去下了一个syslinux3.86版,再做一次,OK引导成功见到了安装界面。

第二个问题:missing iso 9660 p_w_picpath
到机房将U盘插上开始安装遇到了错误,开始一切都是正常的,引导起来了,并且分了区格,但在分了区之后开始进入安装时报错:
missing iso 9660 p_w_picpath
真是郁闷呀,都到这步了您才报错,就不能早报一点吗……看来是p_w_picpath目录的问题,我才想到我把p_w_picpaths目录当时是拷贝到第一个分区(也就是fat)的分区了,于是把sdb1和sdb2挂载上把p_w_picpaths目录移动了第二分区,再试,很快很顺利的装完了

PS:回想一下,其实第二个问题我在进入引导界面后选择镜像盘所在分区时就有提示,不过当时心急一路OK过去根本没注意。