現在、Debian squeeze は快調に動作をしております。
しかし、これが動いているハードディスクは1台だけです。
もし、このハードディスクが壊れたら、最初から作り直さなくてはなりません。
せめて後1台、Debian squeeze のディスクを作成しておきたいものです。
RAID を組めば比較的楽にできるようですが、たかが自宅サーバーですから、RAID は少々もったいない気がします。
それにテラステーションの標準構成も残しておきたいなら、新たに500GBのハードディスクを買ってこなくてはなりません。
昔に購入した手持ちの 170GB のハードディスクにDebian squeeze を入れる事ができないのでしょうか。

実は、これは出来るだろうとの確信がありました。
動作している Debian squeeze を使えば、パーティションの作成だろうが、フォーマットだろうが自由自在です。
そのために必要なソフトは、既に入れております。
作成に必要な情報も「ボンタ君の備忘録」様のサイトに書いてありました。
今回は、容量の少ないハードディスクでの作成ですが、例えば 2TB の容量への変換でも全く同様に出来る筈です。
もう、今までのように Lunix を入れたPCに接続して書き換えたり、TFTブートを利用して作成する必要は全くありません。
簡単、安心、安全、迅速、確実にスペアディスクの作成ができるでしょう。

スペアディスクを作成するために必要な事をおさらいしてみましょう。
(1)パーティションを切る
これは、当たり前です。
まっさらなハードディスクでも作成は出来ますが、恐らくコピー元と同じ容量でしか作成できません。
あらかじめパーティッションを切ってあれば、それに合わせて作成してくれる仕様になっているようです。
つまりは、どんな容量のハードディスクでも良いと言うことになります。(最高と最低の範囲はあるでしょうが)
(2)パーティションのフォーマットを行う。
この作業は、実際は必要ないかも知れませんが、簡単に行えるので私はやりました。
これだけやっておくだけで、標準のFWの入ったハードディスク(通常モード)から立ち上げて、取り外し済のディスク2へ作成したHDD を差し込みます。
次に、WEB設定画面から新規に作成したハードディスクの「認識」→「ファーマット」を行えば、面倒な事は全てテラステーションがやってくれます。

標準のファームウェアの入ったハードディスクが無い場合はどうするのでしょうか。
この場合は、バッファローからファームウェアアップデーターをダウンロードする必要があります。
そして、TSUpdater.ini の以下の部分を変更します。
[Flags]
VersionCheck = 1
NoFormatting = 1
を以下のようにします。
[Flags]
VersionCheck = 1
NoFormatting = 0
解説サイトによっては、NoFormatting = 0 の行を消せばよいと書いてあったりします。
0を入れるのがスマートでしょう。
これで、TSUpdater.exe を実行すると完了します。

と言うのは嘘で、パーティション情報が見つかりませんとかのエラーが出て失敗します。
何が足りないかと言うと、RAIDの作成も行っていないと、弾かれてしまうようです。
WEB設定画面を使用すれば動作をしますので、バッファローの嫌がらせだろうと思いますが、仕様なら仕方がありません。(昔の玄箱ではできました)
実は、テラステーションはRAIDを既に構成しておりますので、新たに CREATE コマンドで追加したハードディスクに作成する事はできないようです。
ADD コマンドとかを使えば良いのかと思ったのですが、起動の繰り返しになりましたので、途中で投げ出してしまいました。(深く試してはおりません)
標準のFWの入ったハードディスクを所持していない場合には、やり方を考えてみようと思いますが、現在は持っておりますので、そこまで研究する気持ちにはなれません。

root@meckk:~# echo "scsi add-single-device 1:0:0:0" > /proc/scsi/scsi 

root@meckk:~# parted -s /dev/sdb mklabel gpt   MS-DOS形式で作成するなら mklabel msdos にします。
root@meckk:~# parted -s /dev/sdb mkpart primary ext3 1049K 1026M 
root@meckk:~# parted -s /dev/sdb mkpart primary ext3 1026M 6146M 
root@meckk:~# parted -s /dev/sdb mkpart primary xfs 6146M 6147M 
root@meckk:~# parted -s /dev/sdb mkpart primary xfs 6147M 6148M 
root@meckk:~# parted -s /dev/sdb mkpart primary linux-swap 6148M 7172M 
root@meckk:~# parted -s /dev/sdb mkpart primary xfs 7172M 165G この部分は使用するハードディスクに合わせます。

root@meckk:~# mke2fs -j -I 128 /dev/sdb1 
root@meckk:~# tune2fs -E hash_alg=tea /dev/sdb1 
root@meckk:~# mke2fs -j /dev/sdb2 
root@meckk:~# mkswap /dev/sdb5 
root@meckk:~# mkfs.xfs -f /dev/sdb6 

「ボンタ君の備忘録」様のサイトの内容の丸写しに近いものです。
このサイトでは、ハードディスクを取り外して、別PCからの操作を行っておりましたのを、テラステーションのホットスワップを利用した方法にしただけです。
上記の部分までは、全く問題がありませんでしたが、RAID を作成するコマンドを使用した部分で、「既に使用されています」とかのエラーが出てRAID の構築ができませんでした。 (これを避けるために、「ボンタ君の備忘録」では別のPCで作成したとも考えられます)
どうやるんだろうと思って、ADD とかのコマンドを使用して起動したら、リブートばかりの繰り返しになったので、ファームウェアアップデートのプログラムを使用するのをあきらめて、WEB設定画面から認識させてファーマットを行いました。
そうしましたら、起動がおかしかったハードディスクでも、何事もなく通常モードのハードディスクを作成する事ができました。

165Gの部分を取り付けたハードディスクの容量に合わせれば、どんな容量のハードディスクでも可能でしょう。(容量が 2TB を超える場合は不明です)
プログラムはホットスワップの検出とパーティションの作成、ファーマットです。
必要なプログラムをインストールしてあれば、エラーが出る事はない筈です。

新規に増設するハードディスクの容量(ここでは165G)を調べるには、パーティションを切る前に parted -s /dev/sdb print と入力すれば分かります。
又、ディスクの内容の全体を知りたければ、parted -l と入力します。
簡易的にハードディスクをまっさらにする方法として、dd if=/dev/zero of=/dev/sdb bs=512 count=1 が解説されております。(頭から512バイトを0で埋める)
ただ、512バイトでは少ない(空と判断しない)システムもあるそうで、dd if=/dev/zero of=/dev/sdb bs=1M count=1 の入力を推薦しているサイトもあります。

私は、RAIDの構成は無難な管理画面から行いましたが、以下のように感じにすれば出来る筈です。(構築のサンプル)

Number Start End Size Type File system Flags 1 32.3kB 1028MB 1028MB primary ext3 2 1028MB 6153MB 5124MB primary xfs 4 6153MB 1000GB 994GB extended 5 6153MB 7181MB 1028MB logical linux-swap 6 7181MB 999GB 992GB logical xfs mdadm -a /dev/md0 /dev/sdb1 mdadm -a /dev/md1 /dev/sdb2 mdadm -a /dev/md10 /dev/sdb5

動作状態の確認は、cat /proc/mdstat です。
ここで、RAID 構成を削除した場合にどうなるのかを調べて見ます。
一応、削除しても元に戻す事ができるように、あらかじめ /etc/mdadm.conf を作成しておきます。

root@meckk:~# echo "DEVICE partitions" > /etc/mdadm.conf 
root@meckk:~# echo "MAILADDR root" >> /etc/mdadm.conf 
root@meckk:~# mdadm -D --scan >> /etc/mdadm.conf 
root@meckk:~# cat /etc/mdadm.conf 
DEVICE partitions
MAILADDR root
ARRAY /dev/md0 metadata=0.90 UUID=c8107ecd:937ecd29:47b9fe03:932a0d8b
ARRAY /dev/md1 metadata=0.90 UUID=feda6c71:e99a1e71:9fc1360f:304aca30
ARRAY /dev/md10 metadata=0.90 UUID=bfd86ba3:af4a0f0d:e333c868:73d89dd7
root@meckk:~#


Trivial File Transfer Protocol(トリビアル ファイル トランスファー プロトコル、TFTP)は、UDPを用いてコンピュータ間でファイルを転送するためのプロトコルである。
FTPに比べて軽量・単純なプロトコルである。,br> 認証機能が無いためにユーザ名やパスワードを必要としない。
ポート番号69をデフォルトとして使用する。

これより以下の記載は全て参考資料です。
私の個人的な備忘録として記載しているものです。

root@meckk:~# parted -s /dev/sdb print Model: Maxtor 6N040T0 (scsi) Disk /dev/sdb: 41.1GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags 1 16.4kB 301MB 301MB primary 2 301MB 802MB 501MB primary 4 802MB 41.1GB 40.3GB extended 5 802MB 931MB 129MB logical linux-swap(v1) 6 931MB 39.9GB 39.0GB logical xfs root@meckk:~# parted -s /dev/sdb rm 6 root@meckk:~# parted -s /dev/sdb rm 5 root@meckk:~# parted -s /dev/sdb rm 4 root@meckk:~# parted -s /dev/sdb rm 3 Error: Partition doesn't exist. root@meckk:~# parted -s /dev/sdb rm 2 root@meckk:~# parted -s /dev/sdb rm 1 root@meckk:~# parted -s /dev/sdb print Model: Maxtor 6N040T0 (scsi) Disk /dev/sdb: 41.1GB Sector size (logical/physical): 512B/512B Partition Table: msdos Number Start End Size Type File system Flags root@meckk:~# parted -s /dev/sdb mklabel gpt root@meckk:~# parted -s /dev/sdb mkpart primary ext3 1049K 1026M root@meckk:~# parted -s /dev/sdb mkpart primary ext3 1026M 6146M root@meckk:~# parted -s /dev/sdb mkpart primary xfs 6146M 6147M root@meckk:~# parted -s /dev/sdb mkpart primary xfs 6147M 6148M root@meckk:~# parted -s /dev/sdb mkpart primary linux-swap 6148M 7172M root@meckk:~# parted -s /dev/sdb mkpart primary xfs 7172M 41.1G root@meckk:~# mke2fs -j -I 128 /dev/sdb1 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 62720 inodes, 250112 blocks 12505 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=260046848 8 block groups 32768 blocks per group, 32768 fragments per group 7840 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376 Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 20 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. root@meckk:~# tune2fs -E hash_alg=tea /dev/sdb1 tune2fs 1.41.12 (17-May-2010) Setting default hash algorithm to tea (2) root@meckk:~# mke2fs -j /dev/sdb2 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 312624 inodes, 1250048 blocks 62502 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1283457024 39 block groups 32768 blocks per group, 32768 fragments per group 8016 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 28 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. root@meckk:~# mkswap /dev/sdb5 Setting up swapspace version 1, size = 1000444 KiB no label, UUID=9c2b65de-ea68-426a-825d-eeaa4f443b34 root@meckk:~# mkfs.xfs -f /dev/sdb6 meta-data=/dev/sdb6 isize=256 agcount=4, agsize=2071360 blks = sectsz=512 attr=2, projid32bit=0 data = bsize=4096 blocks=8285440, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal log bsize=4096 blocks=4045, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 root@meckk:~# parted -s /dev/sdb print Model: Maxtor 6N040T0 (scsi) Disk /dev/sdb: 41.1GB Sector size (logical/physical): 512B/512B Partition Table: gpt Number Start End Size File system Name Flags 1 1049kB 1026MB 1024MB ext3 primary 2 1026MB 6146MB 5120MB ext3 primary 3 6146MB 6147MB 1049kB primary 4 6147MB 6148MB 1049kB primary 5 6148MB 7172MB 1024MB linux-swap(v1) primary 6 7172MB 41.1GB 33.9GB xfs primary root@meckk:~#

【参考資料(ボンタ君の備忘録様のサイトより主要部分をコピー)】
アレイの再構築
スーパーブロックが記入されている場合は、--create ではなく --assembleを使用する。

~# mdadm --assemble --run /dev/md1 /dev/sdb2 [ 8698.454650] __ratelimit: 20 callbacks suppressed [ 8698.459368] mdadm: sending ioctl 1261 to a partition! [ 8698.464425] mdadm: sending ioctl 1261 to a partition! [ 8698.473219] mdadm: sending ioctl 1261 to a partition! [ 8698.478396] mdadm: sending ioctl 1261 to a partition! [ 8698.486109] mdadm: sending ioctl 1261 to a partition! [ 8698.491165] mdadm: sending ioctl 1261 to a partition! [ 8698.518931] mdadm: sending ioctl 1261 to a partition! [ 8698.523989] mdadm: sending ioctl 1261 to a partition! [ 8698.531681] mdadm: sending ioctl 1261 to a partition! [ 8698.536822] mdadm: sending ioctl 1261 to a partition! [ 8698.583345] md: md1 stopped. [ 8698.606105] md: bind [ 8698.643464] raid1: raid set md1 active with 1 out of 2 mirrors [ 8698.651129] md1: detected capacity change from 0 to 5119135744 [ 8698.659838] md1:mdadm: /dev/md1 has been started with 1 drive (out of 2). unknown partition table root@hood:~# ls -l /dev | grep md drwxr-xr-x 2 root root 40 May 31 13:44 md brw-rw---- 1 root disk 9, 1 May 31 16:09 md1 root@hood:~#   こんどこそマウントする。   root@hood:~# mount -t ext3 /dev/md1 /tmp/root [ 8804.547361] kjournald starting. Commit interval 5 seconds [ 8804.552901] EXT3-fs warning: checktime reached, running e2fsck is recommended [ 8804.561854] EXT3 FS on md1, internal journal [ 8804.566245] EXT3-fs: recovery complete. [ 8804.581667] EXT3-fs: mounted filesystem with ordered data mode. root@hood:~# ls /tmp/root bin dev home lib mnt root sys usr www boot etc initrd lost+found proc sbin tmp var root@hood:~#   マウント出来たので root のパスワードを消す。   root@hood:~# cd /tmp/root/etc root@hood:/tmp/root/etc# mv shadow{,.orig} root@hood:/tmp/root/etc# cp -p shadow{.orig,} root@hood:/tmp/root/etc# vi shadow       :       : root@hood:/tmp/root/etc# cat !$ cat shadow root::11009:0:99999:7::: bin:*:11009:0:99999:7::: daemon:*:11009:0:99999:7::: halt:*:11009:0:99999:7::: ftp:*:11009:0:99999:7::: rpc:*:11009:0:99999:7::: rpcuser:*:11009:0:99999:7::: apache:*:11009:0:99999:7::: admin:$1$$I2o9Z7NcvQAKp7wyCTlia0:11009:0:99999:7::: sshd:!:13241:0:99999:7::: nobody:!:13148:0:99999:7::: guest:!:13148:0:99999:7::: mysql:!:14063:::::: root@hood:/tmp/root/etc#   sshd_config の編集 パスワードなしで root のログインを許可する。   root@hood:/tmp/root/etc# mv sshd_config{,.orig} root@hood:/tmp/root/etc# cp -p sshd_config{.orig,} root@hood:/tmp/root/etc# vi sshd_config       :       : root@hood:/tmp/root/etc# diff -c sshd_config{.orig,} *** sshd_config.orig 2011-01-06 11:07:39.000000000 +0900 --- sshd_config 2012-05-26 16:19:10.000000000 +0900 *************** *** 34,41 **** # Authentication:   #LoginGraceTime 2m ! #PermitRootLogin yes ! PermitRootLogin no #StrictModes yes   #RSAAuthentication yes --- 34,41 ---- # Authentication:   #LoginGraceTime 2m ! PermitRootLogin yes ! #PermitRootLogin no #StrictModes yes   #RSAAuthentication yes *************** *** 54,60 ****   # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes ! #PermitEmptyPasswords no   # Change to no to disable s/key passwords #ChallengeResponseAuthentication yes --- 54,60 ----   # To disable tunneled clear text passwords, change to no here! #PasswordAuthentication yes ! PermitEmptyPasswords yes   # Change to no to disable s/key passwords #ChallengeResponseAuthentication yes root@hood:/tmp/root/etc#   アンマウントして、RAID を停止する。   root@hood:/tmp/root/etc# cd root@hood:~# umount /tmp/root root@hood:~# mdadm --stop /dev/md1 [ 9518.245255] md: md1 stopped. [ 9518.249325] md: unbind [ 9518.252244] md: export_rdev(sdb2) [ 9518.263554] md1: detected capacity change from 5119135744 to 0 mdadm: stopped /dev/md1 root@hood:~#   LS-WXL の DISK1 にセットして再起動する。 ログインする。   root@hood:~# ssh root@192.168.8.23 root@LS-WXL98C:~#

機種を手持ちしていないので試しておりませんが、シリアル出力のない機種でも、インストールが可能かも知れない。
(標準ファームで sshd が動いている条件が必要です) RAID設定
RAIDの管理
状態の確認
# cat /proc/mdstat
# mdadm --detail --scan
# mdadm --detail -s
# mdadm --detail /dev/md1
RADIデバイスの作成
# mdadm --create /dev/md1 --level=1 --raid-devices=2 missing /dev/sdb1
# mdadm --create /dev/md1 -l1 -n2 missing /dev/sdb1
RAIDからデバイスを切り離し(非アクティブに)
# mdadm --fail /dev/md1 /dev/sda1
# mdadm -f /dev/md1 /dev/sda1
RAIDからデバイスを取り除く(--fail後のみ実行可能)
# mdadm --remove /dev/md1 /dev/sda1
# mdadm -r /dev/md1 /dev/sda1
RAIDにデバイスを加える
# mdadm --add /dev/md1 /dev/sdb1
アクティブなデバイス数の変更(RAID0, RAID1のみ)
# mdadm --grow /dev/md1 --raid-devices=2
RAIDの停止(削除)
# mdadm --stop /dev/md1
# mdadm -S /dev/md1