HDD の玉突き交換(1)LS-LGL の HDD 交換のついでにファームアップ

LS-LGL

長い前置き

HS-DHGL のハック de 録!! は、 これまで「ストリーミング画質」で録画していた。
VAIO や OQO の極小画面で見るならこれで十分。
ところが、大画面の Bravia でみると粗さが目立つ。まあ、当たり前。
画質をひとつあげ「低画質」にしたのだが、、、 今度は HS-DHGL のディスク容量が足りなくなってきた。
「ストリーミング画質」に比べ「低画質」は MPEG ファイルがおおよそ2倍の サイズになってしまう。
1日10本以上の番組を毎日毎日まる録すると、320GB の HDD はすぐに 95% を超えてしまった。

HDD を買うのももったいないので、「ストリーミング画質」に戻そうかと 思っていたのだが、 500GB HDD が入った LS-L500GL があそんでいることに気が付いた。
13MB のメインメモリしかないので使い道がなく、というか 無理して使わなくてももっとリッチな LinkStation がごろごろしているので、 使うこともなくほこりをかぶっていた。

500GB の HDD が使われずにほこりをかぶっているのではもったいないので、 これを HS-DHGL に移すことにした。

といっても、動く状態で置いておきたいので、 小容量の HDD に標準ファームを入れる。
小容量の HDD には、 先日K-OF のデモ用にセットアップして HS-DHGL/M に入っている Maxtor DiamondMax Plus 160GB。
我が家最小容量の SATA HDD である。もったいない。

ということで、HS-DHGL/M → LS-LGL → HS-DHGL(旧) と HDD を 玉突き交換する。

HS-DHGL/M から HDD をはずす

当面 HS-DHGL/M は HDD なし。

LS-LGL の HDD 交換構想

現在 LS-LGL にインストールしてあるのはファーム 1.03、
最新のファームは 2.01。
HDD の交換と一緒にファームのアップデートもやってしまおう。

普通に考えると、HDD をコピーしてからファームアップなんだが、、、
特に移動するデータもないし、
新規にインストールしてしまう。

ブートに必要なファイルの取り出し

DiamondMax の HDD のパーティションをきれいさっぱり消し、、、
と行きたい所だが最低 Ramroot で起動する /boot だけはないといけない。

LS-LGL の HDD をハックキット化した LS-GL に USB で接続、 マウントして initrd.buffalo と uImage.buffalo を ローカルディスクにコピーする。

ude:~# mkdir /tmp/boot
ude:~# mount /dev/sdb1 /tmp/boot
ude:~# ls /tmp/boot
conf_save.tgz  initrd.buffalo  lost+found  patch.buffalo.zip  u-boot.buffalo  uImage.buffalo
ude:~# cd /tmp/boot
ude:/tmp/boot# mkdir /tmp/boot_save
ude:/tmp/boot# tar cf - initrd.buffalo uImage.buffalo |(cd /tmp/boot_save/; tar xvf -)
initrd.buffalo
uImage.buffalo
ude:/tmp/boot# cd /
ude:/# ls /tmp/boot_save/
initrd.buffalo  uImage.buffalo
ude:/# umount /tmp/boot
ude:/#

新しい HDD に /boot を構築

今度は DiamondMax を USB で接続し、
まずはパーティションの開放。
ude:/# fdisk /dev/sdb

The number of cylinders for this disk is set to 19929.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sdb: 163.9 GB, 163928604672 bytes
255 heads, 63 sectors/track, 19929 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          25      200781   83  Linux
/dev/sdb2              26         275     2008125   83  Linux
/dev/sdb3             276         307      257040   82  Linux swap / Solaris
/dev/sdb4             308       19929   157613715   83  Linux

Command (m for help): d
Partition number (1-4): 4

Command (m for help): d
Partition number (1-4): 3

Command (m for help): d
Partition number (1-4): 2

Command (m for help): d
Selected partition 1

Command (m for help): 
オリジナルの sdb1 のパーティションは、Cylinder 1 ~ 25 、 あら、消す必要なかった。
新規に sdb1 を作成
Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-19929, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-19929, default 19929): 25

Command (m for help): p

Disk /dev/sdb: 163.9 GB, 163928604672 bytes
255 heads, 63 sectors/track, 19929 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          25      200781   83  Linux

Command (m for help): 
書き込んで終了
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
ude:/#
続いてフォーマット。
ude:/# mkfs.ext3 -j /dev/sdb1
mke2fs 1.40-WIP (14-Nov-2006)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
50200 inodes, 200780 blocks
10039 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
25 block groups
8192 blocks per group, 8192 fragments per group
2008 inodes per group
Superblock backups stored on blocks:
        8193, 24577, 40961, 57345, 73729

Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
ude:/#
マウントしてファイルを書き込む
ude:/# mount /dev/sdb1 /tmp/boot
ude:/# cd /tmp/boot_save/
ude:/tmp/boot_save# ls
initrd.buffalo  uImage.buffalo
ude:/tmp/boot_save# tar cf - initrd.buffalo uImage.buffalo |(cd /tmp/boot; tar xvf -)
initrd.buffalo
uImage.buffalo
ude:/tmp/boot_save#
ude:/tmp/boot_save# cd /
ude:/# umount /tmp/boot
ude:/#

LS-L160GL :-) 起動

DiamondMax を LS-LGL にセット。いわば LS-L160GL。

電源を入れる。

	:
	:
Marvell Serial ATA Adapter
Integrated Sata device found
  Device 0: OK
Model: Maxtor 6Y160M0                           Firm: YAR511W0 Ser#: Y48DJ6QE
            Type: Hard Disk
            Supports 48-bit addressing
            Capacity: 156334.5 MB = 152.6 GB (320173056 x 512)

Net:   egiga0 [PRIME], egiga1
	:
	:

linuxrc:choose operation (timeout 4[s])
 1:RamRoot other:HddRoot  ? 1
-RamdiskRoot-
RamRoot で起動する。

BUFFALO INC. LinkStation series LS-LGL(SUIZEI)
LS-LGL-EMFF7 login:

ファームウェアのアップデート

lslgl201.exe を実行する。

無事 LS-LGL-EMF77 が見つかり、 ファームウェア更新を実行。

しばらくすると、シリアルコンソールに

oom-killer: gfp_mask=0xd2
DMA per-cpu:
cpu 0 hot: low 2, high 6, batch 1
cpu 0 cold: low 0, high 2, batch 1
Normal per-cpu: empty
HighMem per-cpu: empty

Free pages:         712kB (0kB HighMem)
Active:1877 inactive:790 dirty:0 writeback:0 unstable:0 free:178 slab:450 mapped:1590 pagetables:21
DMA free:712kB min:512kB low:640kB high:768kB active:7508kB inactive:3160kB present:16384kB pages_scanned:8085 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
HighMem free:0kB min:128kB low:160kB high:192kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
DMA: 48*4kB 1*8kB 0*16kB 0*32kB 0*64kB 0*128kB 0*256kB 1*512kB 0*1024kB 0*2048kB 0*4096kB = 712kB
Normal: empty
HighMem: empty
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap  = 0kB
Total swap = 0kB
Out of Memory: Killed process 729 (clientUtil_serv).
clientUtil_serv: page allocation failure. order:0, mode:0xd2
clientUtil_serv: page allocation failure. order:0, mode:0xd2
が表示された。

シリアルコンソールからログインして、ps を見てみた。
アップデート関連のプロセスが動作しているようには見えない。

なのに PC は「書き換えの完了を待っています」。 地雷かな。パーティションがないから?

~ $ ls -l /boot/
-rw-r--r--    1 root     root     50128818 Dec 29 07:18 file_receive.tmp
-rw-r--r--    1 root     root      1490384 Sep  9  2008 initrd.buffalo
-rw-r--r--    1 root     root      1284160 Dec 29 07:18 uImage.buffalo
~ $ df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/root.old             3963      3489       474  88% /
/dev/ram1                 1024        24      1000   2% /mnt/ram
/dev/disk1_1            194442     57523    126880  31% /boot
~ $
ディスクはまだまだ空いているし、、。

タスクマネージャからアップデータを終了し、 LSUpdater.exe を再度実行してみる。
今度は、「アップデートが必要なLS-LGLは見つかりませんでした」と。

LS-LGL を再起動。 LSUpdater.exe を再度実行。結果は同じ。

oom-killer: gfp_mask=0xd2
DMA per-cpu:
cpu 0 hot: low 2, high 6, batch 1
cpu 0 cold: low 0, high 2, batch 1
Normal per-cpu: empty
HighMem per-cpu: empty

Free pages:         732kB (0kB HighMem)
Active:1852 inactive:789 dirty:0 writeback:0 unstable:0 free:183 slab:471 mapped:1533 pagetables:21
DMA free:732kB min:512kB low:640kB high:768kB active:7408kB inactive:3156kB present:16384kB pages_scanned:4740 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
HighMem free:0kB min:128kB low:160kB high:192kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
DMA: 41*4kB 7*8kB 0*16kB 0*32kB 0*64kB 2*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 732kB
Normal: empty
HighMem: empty
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap  = 0kB
Total swap = 0kB
Out of Memory: Killed process 923 (sh).
Starting pid 950, console /dev/ttyS0: '/sbin/getty'
oom-killer: gfp_mask=0x1d2
DMA per-cpu:
cpu 0 hot: low 2, high 6, batch 1
cpu 0 cold: low 0, high 2, batch 1
Normal per-cpu: empty
HighMem per-cpu: empty

Free pages:         620kB (0kB HighMem)
Active:2124 inactive:555 dirty:0 writeback:0 unstable:0 free:155 slab:463 mapped:1576 pagetables:21
DMA free:620kB min:512kB low:640kB high:768kB active:8496kB inactive:2220kB present:16384kB pages_scanned:1504 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
HighMem free:0kB min:128kB low:160kB high:192kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0
DMA: 9*4kB 9*8kB 2*16kB 1*32kB 1*64kB 1*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 620kB
Normal: empty
HighMem: empty
Swap cache: add 0, delete 0, find 0/0, race 0+0
Free swap  = 0kB
Total swap = 0kB
Out of Memory: Killed process 898 (clientUtil_serv).
clientUtil_serv: page allocation failure. order:0, mode:0x1d2
アップデートできましぇん。

こんなんばっかり。



LS-L250GL
楽天市場
Amazon
Yahoo! ショッピング
Sofmap
TSUKUMO ネットショップ
ValuMore!
ムラウチドットコム
uWorks
パソQ


ハックキット
ハックの記録
LinkStation/玄箱 をハックしよう

ハックキット(2)

Copyright (C) 2003-2008 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市