Debian GNU/Linux 5.0 qube login: guest Password: Last login: Wed Feb 18 15:55:08 JST 2009 from uxl.yamasita.jp on pts/0 Linux qube 2.6.22.7 #51 Thu Jan 29 09:56:43 JST 2009 armv5tejl The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. No directory, logging in with HOME=/ guest@qube:/$ df Filesystem 1K-blocks Used Available Use% Mounted on /dev/md1 4993920 212096 4781824 5% / tmpfs 62888 0 62888 0% /lib/init/rw tmpfs 62888 0 62888 0% /dev/shm /dev/root.old 31729 16813 14916 53% /initrd /dev/md0 995928 192140 803788 20% /boot /dev/sda6 148376092 65652 148310440 1% /mnt/disk1 guest@qube:/$/dev/md0 が /boot にマウントされているし、
guest@qube:/$ cat /proc/mdstat Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] md1 : active raid1 sda2[2] 5004160 blocks [4/1] [__U_] md10 : active raid1 sda5[2] 1003904 blocks [4/1] [__U_] md0 : active raid1 sda1[2] 1003904 blocks [4/1] [__U_] unused devices: <none> guest@qube:/$md もちゃんとできている。
guest@qube:/$ free total used free shared buffers cached Mem: 125780 53136 72644 0 32788 10920 -/+ buffers/cache: 9428 116352 Swap: 1003896 0 1003896 guest@qube:/$Swap もちゃんと使われている。
yasunari@ude:/home/linkstation/HackKit/unified$ diff -u hackkit_090216.sh hackki t_090222.sh --- hackkit_090216.sh 2009-02-16 20:37:53.995806375 +0900 +++ hackkit_090222.sh 2009-02-22 01:27:22.960106522 +0900 @@ -12,6 +12,11 @@ NAMESERVER=192.168.1.2 HOSTNAME=hackkit +if [ -f hackkit_config ] +then + . hackkit_config +fi + WORK=/mnt/disk1/share/hackkit HACKKIT=$WORK/hackkit_081209.tar.gz MOUNTPOINT=/mnt/debinst @@ -51,7 +56,7 @@ # / のマウント mount_root() { - if [ $MACHINE = LSWSGL ] + if [ $MACHINE = LSWSGL -o $MACHINE = LSQL ] then echo building md... /etc/init.d/startSysMd.sh @@ -64,7 +69,7 @@ fi mount -t xfs $ROOTPARTITION $MOUNTPOINT || exit - if [ $MACHINE = LSWSGL ] + if [ $MACHINE = LSWSGL -o $MACHINE = LSQL ] then mkdir $MOUNTPOINT/.buffalo @@ -85,7 +90,7 @@ cd $MOUNTPOINT tar zxvf $HACKKIT - if [ $MACHINE = LSWSGL ] + if [ $MACHINE = LSWSGL -o $MACHINE = LSQL ] then mkdir $MOUNTPOINT/mnt/disk1 mkdir $MOUNTPOINT/mnt/disk2 @@ -97,7 +102,7 @@ } #--------------------------------------------------------- -# fstab の修正(LS-WSGL のみ) +# fstab の修正(LS-WSGL,LS-QL のみ) create_fstab() { echo creating /etc/fstab ... @@ -109,10 +114,15 @@ /dev/md1 / xfs defaults,noatime 0 0 proc /proc proc defaults 0 0 /dev/md10 swap swap defaults 0 0 -/dev/md0 /boot ext2 defaults,noatime 0 0 -/dev/sda6 /mnt/disk1 xfs defaults,noatime 0 0 -/dev/sdb6 /mnt/disk2 xfs defaults,noatime 0 0 EOF + + echo "/dev/md0 /boot $BOOTPARTITIONTYPE defaults,noatime 0 0" >> etc/fstab + + echo "/dev/sda6 /mnt/disk1 xfs defaults,noatime 0 0" >> etc/fstab + if [ $MACHINE = LSWSGL ] + then + echo "/dev/sdb6 /mnt/disk2 xfs defaults,noatime 0 0" >> etc/fstab + fi } #--------------------------------------------------------- @@ -324,7 +334,7 @@ do LINE=\`cat /proc/buffalo/kernevnt\` #echo "line [\$LINE]" - if [ "\$LINE" = PSW_off ] + if [ "\$LINE" = PSW_off -o "\$LINE" = PSW_pushed ] then shutdown -h now fi @@ -546,7 +556,7 @@ cd / if [ ! -d $MOUNTPOINT/boot ] then - mkdir $MOUNTPOINT/boot || exit + mkdir -p $MOUNTPOINT/boot || exit fi mount -t $BOOTPARTITIONTYPE $BOOTPARTITION $MOUNTPOINT/boot || exit } @@ -584,7 +594,7 @@ mount -o loop $MOUNTPOINT/boot/initrd /tmp/root || exit mv /tmp/root/linuxrc /tmp/root/linuxrc.orig - if [ $MACHINE = LSWSGL ] + if [ $MACHINE = LSWSGL -o $MACHINE = LSQL ] then cat > /tmp/root/linuxrc <<EOF #!/bin/sh @@ -596,9 +606,13 @@ mount proc /proc -t proc mount sysfs /sys -t sysfs +. /usr/local/lib/libsys +SetupNasFeature + ldconfig depmod +. /etc/nas_feature /etc/init.d/startSysMd.sh echo "0x901" > /proc/sys/kernel/real-root-dev @@ -927,6 +941,54 @@ # /boot のアンマウント umount_boot ;; +0x00004000) + MACHINE=LSQL + + BOOTPARTITION=/dev/md0 + BOOTPARTITIONTYPE=ext3 + ROOTPARTITION=/dev/md1 + SWAPPARTITION=/dev/md10 + DATAPARTITION="" + + # 各パーティションのフォーマット(LS-WSGL 以外) + # format_disk + # / のマウント + mount_root + # アーカイブの展開 + extract_hackkit + # fstab の修正(LS-WSGL のみ) + create_fstab + # miconapl のコピー(LS-GL/HS-DHGLのみ) + #copy_miconapl + # LED コントロールスクリプトの作成 + create_miconapl + # Fan コントロールスクリプトの作成(LS-GL/HS-DHGLのみ) + # create_fancontrol + # 電源 SW による電源 OFF 対応 + create_kernelmon + # カーネルモジュールのコピー(LS-WSGL 以外) + # copy_modules + # カーネルモジュールのロードスクリプトの作成 + create_usb + + # ネットワークのセットアップ + network_interfaces + resolv_conf + hosts + hostname + + # / のアンマウント + umount_root + + # /boot のマウント + mount_boot + # /boot のコピー(LS-WSGL 以外) + # copy_boot + # initrd の編集 + edit_initrd + # /boot のアンマウント + umount_boot + ;; *) echo unknown PRODUCTID = "$PRODUCTID" exit yasunari@ude:/home/linkstation/HackKit/unified$LS-XHL にも LS-QL にも、その場限りのパッチ的に修正を入れたので、 ここらあたりでリファクタリングが必要。
これまでは
インストールする度にインストーラの先頭に書いてある IP アドレスや
ホスト名をそのマシンに対応するよう修正していた。
今回 hackkit_config があればそれを読み込む機能を追加した。
hackkit_config があればそれを読み込むので、
hackkit_config に
ADDRESS=192.168.2.50 HOSTNAME=qubeとデフォルト異なるところだけを書いておけば、 インストーラは全く修正しなくてもよい。
hackkit_config はそのマシンに固有
hackkit_YYMMDD.sh はそのマシンに依存しない
ようにできた。
|
← 2歩さがる |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ リファクタリング |