用syslinux做一个安装CentOS 6用的U盘


0. 准备一个8GB的u盘,准备CentOS的iso,我用的是dvd的iso,可以从 http://mirrors.ta139.com/centos/6/isos/x86_64/ 下载

1. 制作u盘的系统需要安装了syslinux,我的版本是3.11

2. u盘分区成如下格式

[php]
  1. fdisk -l /dev/sdb  
  2.   
  3. Disk /dev/sdb: 8000 MB, 8000110592 bytes  
  4. 255 heads, 63 sectors/track, 972 cylinders  
  5. Units = cylinders of 16065 * 512 = 8225280 bytes  
  6.   
  7.    Device Boot      Start         End      Blocks   Id  System  
  8. /dev/sdb1   *           1          65      522081    b  W95 FAT32  
  9. /dev/sdb2              66         972     7285477+   c  W95 FAT32 (LBA)  

3. 分别格式化两个分区

[php]
  1. mkfs.vfat -n BOOT /dev/sdb1  
  2. mkfs.vfat -n DATA /dev/sdb2  

4. mount DATA分区,mount第一个iso,复制一些数据到DATA分区,再把iso都复制到DATA分区,然后umount DATA分区

[php]
  1. mkdir -p /media/iso /media/DATA  
  2. mount /dev/sdb2 /media/DATA  
  3. mount -o loop /path/to/CentOS-6.0-x86_64-bin-DVD1.iso /media/iso/  
  4. cp -rv /media/iso/images /media/DATA  
  5. cp -rv /path/to/CentOS-6.0-x86_64-bin-DVD*.iso /media/DATA  
  6. umount /media/DATA  
5. 覆盖u盘的mbr,安装syslinux以及启动需要的内核文件

[php]
  1. dd if=/usr/lib/syslinux/mbr.bin of=/dev/sdb  
  2. syslinux -s /dev/sdb1  
  3. mkdir -p /media/BOOT  
  4. mount /dev/sdb1 /media/BOOT  
  5. cp /media/iso/isolinux/isolinux.bin /media/BOOT/syslinux.bin  
  6. cp /media/iso/isolinux/isolinux.cfg /media/BOOT/syslinux.cfg  
  7. cp /media/iso/isolinux/vmlinuz /media/BOOT  
  8. cp /media/iso/isolinux/initrd.img /media/BOOT  
6. 编辑/media/BOOT/syslinux.cfg

[php]
  1. default CentOS  
  2. prompt 0  
  3.   
  4. label CentOS  
  5.   kernel vmlinuz  
  6.   append initrd=initrd.img method=hd:sdb2:/  
7. 最后umount BOOT分区和iso就完成啦,enjoy it!

相关内容