(a) データ領域に RAID が設定されていると何かと面倒なので、
RAID は解除しておく
(a-1) 標準ファームで起動する。
(a-2) データ領域にあるファイルを別のところに待避する。
(a-3) 標準ファームの Web 管理画面を用い、RAID を解放する。
このように、RAIDアレイが設定されていない状態にする。
(a-4) 電源 OFF。コンセントも抜く。
(b) ハックキットをインストールする1台目の HDD に
標準ファームをコピーする。
(b-1) SATA2 にのみ HDD を接続し、起動する。
(b-2) ハックキットをインストールする1台目の HDD を USB で接続する。
(b-3) /mnt/usbdisk1 に自動的にマウントされた場合はアンマウントする。
root@LS-WSGL678:~# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/md1 4993920 291748 4702172 6% / /dev/ram1 15360 124 15236 1% /mnt/ram /dev/md0 988064 126436 861628 13% /boot /dev/disk1_6 187419092 142100 187276992 0% /mnt/disk1 /dev/usbdisk1_1 988064 126524 861540 13% /mnt/usbdisk1 root@LS-WSGL678:~# umount /mnt/usbdisk1/ /sbin/hotplug [block] root@LS-WSGL678:~#(b-4) sdb にパーティションを切る。
パーティション | タイプ | cylinder | システム |
sdb1 | プライマリ | 1 - 125 | Linux |
sdb2 | プライマリ | 126 - 748 | Linux |
sdb4 | 拡張 | 749 - 残り全部 | |
sdb5 | 論理 | 749 - 873 | Linux swap |
sdb6 | 論理 | 874 - 残り全部 | Linux |
root@LS-WSGL678:~# fdisk -l /dev/sdb Disk /dev/sdb: 250.0 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 125 1004031 83 Linux /dev/sdb2 126 748 5004247+ 83 Linux /dev/sdb4 749 30401 238187722+ 5 Extended /dev/sdb5 749 873 1004031 82 Linux swap /dev/sdb6 874 30295 236332183+ 83 Linux root@LS-WSGL678:~#
(b-5) フォーマットする(不要かも)
パーティション | フォーマット | コマンド |
sdb1 | ext2 | mkfs.ext /dev/sdb1 |
sdb2 | xfs | mkfs.xfs /dev/sdb2 |
sdb4 | - | - |
sdb5 | swap | mkswap /dev/sdb5 |
sdb6 | xfs | mkfs.xfs /dev/sdb6 |
root@LS-WSGL678:~# mkfs.ext /dev/sdb1 sh: mkfs.ext: command not found root@LS-WSGL678:~#がー。手順がバグってた。
root@LS-WSGL678:~# mkfs.ext2 /dev/sdb1 mke2fs 1.27 (8-Mar-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 125696 inodes, 251007 blocks 12550 blocks (5.00%) reserved for the super user First data block=0 8 block groups 32768 blocks per group, 32768 fragments per group 15712 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 30 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. root@LS-WSGL678:~# mkfs.xfs /dev/sdb2 mkfs.xfs: /dev/sdb2 appears to contain an existing filesystem (xfs). mkfs.xfs: Use the -f option to force overwrite. root@LS-WSGL678:~#ここも。まあ、ここは条件次第。
root@LS-WSGL678:~# mkfs.xfs -f /dev/sdb2 meta-data=/dev/sdb2 isize=256 agcount=8, agsize=156383 blks = sectsz=512 data = bsize=4096 blocks=1251061, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=1 naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=2560, version=1 = sectsz=512 sunit=0 blks realtime =none extsz=65536 blocks=0, rtextents=0 root@LS-WSGL678:~# mkswap /dev/sdb5 Setting up swapspace version 1, size = 1028120576 bytes root@LS-WSGL678:~# mkfs.xfs -f /dev/sdb6 meta-data=/dev/sdb6 isize=256 agcount=57, agsize=1048576 blks = sectsz=512 data = bsize=4096 blocks=59083045, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=1 naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=28849, version=1 = sectsz=512 sunit=0 blks realtime =none extsz=65536 blocks=0, rtextents=0 root@LS-WSGL678:~#(b-6) RAID をリビルドする
# mdadm -a /dev/md0 /dev/sdb1 # mdadm -a /dev/md1 /dev/sdb2 # mdadm -a /dev/md10 /dev/sdb5を実行する。
root@LS-WSGL678:~# mdadm -a /dev/md0 /dev/sdb1 RAID1 conf printout: --- wd:1 rd:2 disk 0, wo:0, o:1, dev:sda1 disk 1, wo:1, o:1, dev:sdb1 mdadm: added /dev/sdb1 root@LS-WSGL678:~# KERNELMOn (raidrecovery 0 1 1 1 8 17) mdadm -a /dev/md1 /dev/sdb2 RAID1 conf printout: --- wd:1 rd:2 disk 0, wo:0, o:1, dev:sda2 disk 1, wo:1, o:1, dev:sdb2 mdadm: re-added /dev/sdb2 root@LS-WSGL678:~# mdadm -a /dev/md10 /dev/sdb5 RAID1 conf printout: --- wd:1 rd:2 disk 0, wo:0, o:1, dev:sda5 disk 1, wo:1, o:1, dev:sdb5 mdadm: re-added /dev/sdb5 root@LS-WSGL678:~#/proc/mdstat を監視してリビルドの完了を待つ。
root@LS-WSGL678:~# cat /proc/mdstat Personalities : [raid0] [raid1] md1 : active raid1 sdb2[2] sda2[0] 5004160 blocks [2/1] [U_] resync=DELAYED md10 : active raid1 sdb5[1] sda5[0] 1003904 blocks [2/1] [U_] resync=DELAYED md0 : active raid1 sdb1[2] sda1[0] 1003904 blocks [2/1] [U_] [===========>.........] recovery = 58.8% (591680/1003904) finish=0.3min speed=17986K/sec unused devices:(b-7) 電源 OFF。コンセントも抜く。root@LS-WSGL678:~# RAID1 conf printout: --- wd:2 rd:2 disk 0, wo:0, o:1, dev:sda1 disk 1, wo:0, o:1, dev:sdb1 KERNELMOn (raidrecovery 0 0 0 1 8 17) KERNELMOn (raidrecovery 10 1 1 1 8 21) RAID1 conf printout: --- wd:2 rd:2 disk 0, wo:0, o:1, dev:sda5 disk 1, wo:0, o:1, dev:sdb5 KERNELMOn (raidrecovery 10 0 0 1 8 21) KERNELMOn (raidrecovery 1 1 1 1 8 18) RAID1 conf printout: --- wd:2 rd:2 disk 0, wo:0, o:1, dev:sda2 disk 1, wo:0, o:1, dev:sdb2 KERNELMOn (raidrecovery 1 0 0 1 8 18) root@LS-WSGL678:~# cat /proc/mdstat Personalities : [raid0] [raid1] md1 : active raid1 sdb2[1] sda2[0] 5004160 blocks [2/2] [UU] md10 : active raid1 sdb5[1] sda5[0] 1003904 blocks [2/2] [UU] md0 : active raid1 sdb1[1] sda1[0] 1003904 blocks [2/2] [UU] unused devices: root@LS-WSGL678:~#
(c) ハックキットをインストールする2台目の HDD に
標準ファームをコピーする。
(c-1) 上記 (b) でコピーした HDD を SATA2 に接続し、起動する。
(c-2) ハックキットをインストールする2台目の HDD を USB で接続する。
以下、(b-3) ~ (b-7) を繰り返し。
root@LS-WSGL678:~# df Filesystem 1k-blocks Used Available Use% Mounted on /dev/md1 4993920 292228 4701692 6% / /dev/ram1 15360 112 15248 1% /mnt/ram /dev/md0 988064 126436 861628 13% /boot /dev/disk1_6 236216784 960 236215824 0% /mnt/disk1 /dev/usbdisk1_1 988064 126532 861532 13% /mnt/usbdisk1 root@LS-WSGL678:~# umount /mnt/usbdisk1/ /sbin/hotplug [block] root@LS-WSGL678:~# fdisk -l /dev/sdb Disk /dev/sdb: 250.0 GB, 250059350016 bytes 255 heads, 63 sectors/track, 30401 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdb1 1 125 1004031 83 Linux /dev/sdb2 126 748 5004247+ 83 Linux /dev/sdb4 749 30401 238187722+ 5 Extended /dev/sdb5 749 873 1004031 82 Linux swap /dev/sdb6 874 30295 236332183+ 83 Linux root@LS-WSGL678:~# mkfs.ext2 /dev/sdb1 mke2fs 1.27 (8-Mar-2002) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 125696 inodes, 251007 blocks 12550 blocks (5.00%) reserved for the super user First data block=0 8 block groups 32768 blocks per group, 32768 fragments per group 15712 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 30 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. root@LS-WSGL678:~# mkfs.xfs -f /dev/sdb2 meta-data=/dev/sdb2 isize=256 agcount=8, agsize=156383 blks = sectsz=512 data = bsize=4096 blocks=1251061, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=1 naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=2560, version=1 = sectsz=512 sunit=0 blks realtime =none extsz=65536 blocks=0, rtextents=0 root@LS-WSGL678:~# mkswap /dev/sdb5 Setting up swapspace version 1, size = 1028120576 bytes root@LS-WSGL678:~# mkfs.xfs -f /dev/sdb6 meta-data=/dev/sdb6 isize=256 agcount=57, agsize=1048576 blks = sectsz=512 data = bsize=4096 blocks=59083045, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=1 naming =version 2 bsize=4096 log =internal log bsize=4096 blocks=28849, version=1 = sectsz=512 sunit=0 blks realtime =none extsz=65536 blocks=0, rtextents=0 root@LS-WSGL678:~# mdadm -a /dev/md0 /dev/sdb1 RAID1 conf printout: --- wd:1 rd:2 disk 0, wo:1, o:1, dev:sdb1 disk 1, wo:0, o:1, dev:sda1 mdadm: re-added /dev/sdb1 root@LS-WSGL678:~# KERNELMOn (raidrecovery 0 1 1 1 8 17) mdadm -a /dev/md10 /dev/sdb5 RAID1 conf printout: --- wd:1 rd:2 disk 0, wo:1, o:1, dev:sdb5 disk 1, wo:0, o:1, dev:sda5 mdadm: re-added /dev/sdb5 root@LS-WSGL678:~# mdadm -a /dev/md1 /dev/sdb2 RAID1 conf printout: --- wd:1 rd:2 disk 0, wo:1, o:1, dev:sdb2 disk 1, wo:0, o:1, dev:sda2 mdadm: re-added /dev/sdb2 root@LS-WSGL678:~# cat /proc/mdstat Personalities : [raid0] [raid1] md1 : active raid1 sdb2[2] sda2[1] 5004160 blocks [2/1] [_U] resync=DELAYED md10 : active raid1 sdb5[0] sda5[1] 1003904 blocks [2/1] [_U] resync=DELAYED md0 : active raid1 sdb1[0] sda1[1] 1003904 blocks [2/1] [_U] [===============>.....] recovery = 76.1% (765248/1003904) finish=0.2min speed=19683K/sec unused devices:うぉー。ここで、電源OFF、HDD を SATA1 につなぎ、再起動。root@LS-WSGL678:~# RAID1 conf printout: --- wd:2 rd:2 disk 0, wo:0, o:1, dev:sdb1 disk 1, wo:0, o:1, dev:sda1 KERNELMOn (raidrecovery 0 0 0 1 8 17) KERNELMOn (raidrecovery 10 1 1 1 8 21) RAID1 conf printout: --- wd:2 rd:2 disk 0, wo:0, o:1, dev:sdb5 disk 1, wo:0, o:1, dev:sda5 KERNELMOn (raidrecovery 10 0 0 1 8 21) KERNELMOn (raidrecovery 1 1 1 1 8 18) RAID1 conf printout: --- wd:2 rd:2 disk 0, wo:0, o:1, dev:sdb2 disk 1, wo:0, o:1, dev:sda2 KERNELMOn (raidrecovery 1 0 0 1 8 18) root@LS-WSGL678:~# cat /proc/mdstat Personalities : [raid0] [raid1] md1 : active raid1 sdb2[0] sda2[1] 5004160 blocks [2/2] [UU] md10 : active raid1 sdb5[0] sda5[1] 1003904 blocks [2/2] [UU] md0 : active raid1 sdb1[0] sda1[1] 1003904 blocks [2/2] [UU] unused devices: root@LS-WSGL678:~#
このフォルダは、Linux 的には
/mnt/disk1/share/hackkit となる。
root@LS-WSGL678:~# ls /mnt/disk1/share/hackkit/ LS-WSGL_hackkit_step1_0.01.sh hackkit_081209.tar.gz hackkit_081209.sh mkimage root@LS-WSGL678:~#
ここでは遅い。。。。
(2) initrd.buffalo の変更
LS-WSGL_hackkit_step1_0.02.sh を実行する。
root@LS-WSGL678:~# cd /mnt/disk1/share/hackkit root@LS-WSGL678:/mnt/disk1/share/hackkit# sh LS-WSGL_hackkit_step1_0.02.sh Extracting initrd... 89028+1 records in 89028+1 records out mounting initrd... /sbin/hotplug [block] editing linuxrc... clearing root's password... rebuilding initrd.buffalo... /sbin/hotplug [block] gziping initrd ... wait 5 minutes LS-WSGL_hackkit_step1_0.02.sh: line 50: /mnt/disk1/hackkit/mkimage: No such file or directory root@LS-WSGL678:/mnt/disk1/share/hackkit#直すの忘れてた。
root@LS-WSGL678:/mnt/disk1/share/hackkit# mv LS-WSGL_hackkit_step1_0.0{2,3}.sh root@LS-WSGL678:/mnt/disk1/share/hackkit# vi LS-WSGL_hackkit_step1_0.03.sh : :再実行
root@LS-WSGL678:/mnt/disk1/share/hackkit# !sh:p sh LS-WSGL_hackkit_step1_0.02.sh root@LS-WSGL678:/mnt/disk1/share/hackkit# !sh:s/02/03/ sh LS-WSGL_hackkit_step1_0.03.sh Extracting initrd... 89028+1 records in 89028+1 records out mounting initrd... mkdir: Cannot create directory `/tmp/root': File exists /sbin/hotplug [block] editing linuxrc... clearing root's password... rebuilding initrd.buffalo... /sbin/hotplug [block] gziping initrd ... wait 5 minutes Image Name: initrd Created: Sun Mar 2 23:13:01 2008 Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 5675099 Bytes = 5542.09 kB = 5.41 MB Load Address: 0x00000000 Entry Point: 0x00000000 root@LS-WSGL678:/mnt/disk1/share/hackkit#エラーが出ずに※終了することを確認する。
(3) 電源 OFF。コンセントも抜く。
LS-WSGL の場合は、RamRoot モードで起動してくる。
BUFFALO INC. LinkStation series LS-WSGL-EM678 login:
LS-WSGL-EM678 login: root login[1187]: root login on `ttyS0' BusyBox v1.1.1 (2008.11.04-08:25+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. #
# date 121221102008 Fri Dec 12 21:10:00 JST 2008 #
パーティション | タイプ | サイズ | システム |
sdb1 | プライマリ | 200MB | Linux |
sdb2 | プライマリ | 2GB | Linux |
sdb3 | プライマリ | 256MB | Linux swap |
sdb4 | プライマリ | 残り全部 | Linux |
# mkdir /mnt/disk1 mkdir: Cannot create directory `/mnt/disk1': File exists # mount /dev/sda6 /mnt/disk1 XFS mounting filesystem sda6 #
# cd /mnt/disk1/share/hackkit # sh hackkit_081209.sh PRODUCTID = 0x00003002 building md... -- rebuild mdadm.conf for BOOT, ROOTFS -- md: md10 stopped. mdadm: /dev/disk2_1 has wrong uuid. mdadm: /dev/disk1_1 has wrong uuid. mdadm: /dev/disk2_2 has wrong uuid. mdadm: /dev/disk1_2 has wrong uuid. md: bindエラーが出ない※ことを確認する。md: bind raid1: raid set md10 active with 2 out of 2 mirrors mdadm: /dev/md10md: md1 stopped. has been started with 2 drives. mdadm: /dev/disk2_1 has wrong uuid. mdadm: /dev/disk1_1 has wrong uuid. md: bind md: bind raid1: raid set md1 active with 2 out of 2 mirrors mdadm: /dev/md1 md: md0 stopped. has been started with 2 drives. md: bind md: bind raid1: raid set md0 active with 2 out of 2 mirrors mdadm: /dev/md0 has been started with 2 drives. -- setup max error counts -- /sys/block/md0/md/maxerr_cnt is setted to -1 /sys/block/md1/md/maxerr_cnt is setted to -1 /sys/block/md10/md/maxerr_cnt is setted to -1 mounting root file system ... XFS mounting filesystem md1 extracting hackkit archive ... ./ ./var/ ./var/lib/ ./var/lib/apt/ ./var/lib/apt/lists/ : : ./media/ ./initrd/ creating /etc/fstab ... creating miconapl ... creating kernelmon ... creating usb ... checking /dev/md0 fsck 1.27 (8-Mar-2002) e2fsck 1.27 (8-Mar-2002) Pass 1: Checking inodes, blocks, and sizes Deleted inode 11 has zero dtime. Fix? yes Deleted inode 15 has zero dtime. Fix? yes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 4: Checking reference counts Pass 5: Checking group summary information Block bitmap differences: -(8977--13077) -(13750--14335) -(15731--19245) Fix? yes Free blocks count wrong for group #0 (15293, counted=23495). Fix? yes Free blocks count wrong (207166, counted=215368). Fix? yes Inode bitmap differences: -11 -15 Fix? yes Free inodes count wrong for group #0 (15690, counted=15692). Fix? yes Free inodes count wrong (125674, counted=125676). Fix? yes /dev/md0: ***** FILE SYSTEM WAS MODIFIED ***** /dev/md0: 20/125696 files (5.0% non-contiguous), 35608/250976 blocks mounting /boot ... editing initrd ... 88673+1 records in 88673+1 records out gunziping /mnt/debinst/boot/initrd.gz ... gziping /mnt/debinst/boot/initrd ... wait 5 minutes Image Name: initrd Created: Fri Dec 12 21:16:34 2008 Image Type: ARM Linux RAMDisk Image (gzip compressed) Data Size: 5675314 Bytes = 5542.30 kB = 5.41 MB Load Address: 0x00000000 Entry Point: 0x00000000 unmount /boot ... umount: /mnt/debinst/boot: device is busy umount: /mnt/debinst/boot: device is busy #
電源 OFF。コンセントも抜く。
Debian GNU/Linux lenny/sid hackkit ttyS0 hackkit login: BuffaloSwPollingCheck> SW_POWER_ON
LED | 状態 |
POWER | 点灯 |
LINK/ACT | ネットワークに応じてちらちら |
DIAG | 消灯 |
ERROR | 消灯 |
hackkit login: guest Password: Linux hackkit 2.6.16.16-arm1 #383 Mon Nov 10 13:33:20 JST 2008 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@hackkit:/$ su - root Password: hackkit:~#
hackkit:~# date 121221212008 Fri Dec 12 21:21:00 JST 2008 hackkit:~#
hackkit:~# apt-get update Get:1 http://ftp.jp.debian.org lenny Release.gpg [189B] Get:2 http://security.debian.org lenny/updates Release.gpg [189B] Get:3 http://security.debian.org lenny/updates Release [40.8kB] Get:4 http://ftp.jp.debian.org lenny Release [74.5kB] : : Get:36 http://ftp.jp.debian.org lenny/main 2008-12-12-0835.44.pdiff [2842B] Fetched 170kB in 2min1s (1402B/s) Reading package lists... Done hackkit:~# apt-get -f install Reading package lists... Done Building dependency tree Reading state information... Done 0 upgraded, 0 newly installed, 0 to remove and 4 not upgraded. hackkit:~# apt-get dist-upgrade Reading package lists... Done Building dependency tree Reading state information... Done Calculating upgrade... Done The following packages will be upgraded: apt apt-utils aptitude libgnutls26 4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. Need to get 5228kB of archives. After this operation, 131kB of additional disk space will be used. Do you want to continue [Y/n]? y : : Setting up libgnutls26 (2.4.2-4) ... hackkit:~#
hackkit:~# tail -f /var/log/messages : :USB メモリを刺してもうんともすんとも。
hackkit:~# lsmod Module Size Used by vfat 13920 0 fat 56572 1 vfat usblp 14784 0 usb_storage 59975 0 uhci_hcd 31184 0 ohci_hcd 17220 0 usbcore 127240 4 usblp,usb_storage,uhci_hcd,ohci_hcd hackkit:~#あらら、ehci-marvell-hcd.ko がロードされていない。 インストーラを各機種共通にしたときのミス。
インストーラ、作り直し。
二度手間にならないよう、残りの確認項目を確認する。
認識せず
# shutdown -r nowを実行し、正常に※リブートしてくることを確認する。
特に問題ないように見える※
こちらも特に問題ないように見える※
|
← 作り直したハックキットの確認手順、確認項目 |
ハックの記録 LinkStation/玄箱 をハックしよう |
→ インストーラの修正 |