USB起動のLinuxのつくり方
デスクトップでもiDCのサーバでも動かしたいのでsyslinuxを使用します。
UNetbootinをつかうとsyslinuxが簡単に入ります。
インストールUSBをつくる為のものです
http://unetbootin.sourceforge.net/
○まずパーテションを2つ切ります。
[ vfat ][ ext3 ]
usbが/dev/sdcだとしたら fdisk /dev/sdc
/dev/sdc1 /dev/sdc2 だとしたら
/dev/sdc1をvfatでフォーマットしておきます。mkfs.vfat /dec/sdc1
/dev/sdc2をext3でフォーマットしておきます。mkfs.ext3 /dec/sdc2マウントしておきます
mount /dev/sdc1 /mnt
○次にUNetbootinで/dev/sdc1にインストールディスクとしていれます(あくまでsyslinuxを入れる目的です)
http://ftp.riken.jp/Linux/centos/6.2/isos/x86_64/CentOS-6.2-x86_64-minimal.iso
これなんか少なくてコピーがはやくていいと思います。[終了]と出たら不要なファイルを消してしまします(残していても問題無いですが)
残すファイル
ldlinux.sys
isolinux
menu.c32
syslinux.cfg
ubninit
ubnkern
○/dev/sdc2に動かしたいLinuxを展開します。既に動いているLinuxをそのままtarで固めて持って来るのが早いし楽です。
ここではcentos6.2を持ってきてます
mount /dev/sdc2 /mnt2
- Linuxを展開する--
ls /mnt2
こんな状態になってるかと思います
bin boot dev etc home lib lib64 lost+found media mnt opt proc root sbin selinux srv sys tmp usr var
○/dev/sdc2の boot を/dev/sdc1にコピーしておきます(syslinuxで起動するカーネルが見えるようにする為)
cp -Rfv /mnt2/boot /mnt
○起動にLABELを指定するのでLABELの設定をします
tune2fs -L /USB_ROOT /dev/sdc2
○設定ファイルを編集します
syslinux側
# cat /mnt/syslinux.cfg
default menu.c32
prompt 0
menu title UNetbootin
timeout 100label centos62
menu label centos62
kernel /boot/vmlinuz-2.6.32-220.4.1.el6.x86_64
append initrd=/boot/initramfs-2.6.32-220.4.1.el6.x86_64.img root=LABEL=/USB_ROOT
linux側
# cat /mnt2/boot/grub/menu.lst
#boot=/dev/sda
default=0
timeout=5
#splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenutitle CentOS (2.6.32-220.4.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-220.4.1.el6.x86_64 ro root=LABEL=/USB_ROOT
initrd /initramfs-2.6.32-220.4.1.el6.x86_64.img
# cat /mnt2/etc/fstab
#/dev/sda2 / ext3 defaults 1 1
LABEL=/USB_ROOT / ext3 defaults 1 1
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
#/dev/sda2 swap swap defaults 0 0
後半雑ですねw