Last Update: "2012/03/07 15:30:22 makoto"
swap34
34 入替
34 入替って何 ?: TeraStation に NetBSD を入れようとする場合のことです。
元々の区画は次のようになっています。
番号 | 開始 | 終了 | kB | 形式 | 意味 | 大きさ |
1 | 1 | 48 | 385528+ | 83 Linux | / | 380M
| 2 | 49 | 65 | 136552+ | 82 Linux swap | swap | 136M
| 3 | 66 | 30378 | 243481141 | 83 Linux | /mnt 領域 | 240G
| 4 | 30378 | 30401 | 192779 | 83 Linux | 未使用 | 192M
|
「Linux 側の環境は最低限の形を残して、NetBSD 側に大きな disk を割当てる」という課題があります。
言替えると、
- Linux 側を何事もなかったかのように動かす
- NetBSD 領域を確保する
で、
これを解決する一つの方法が 34 入替です。
実は、以下に書いてあるような複雑なことをしないでも、単に
fdisk を使って大きさを入替える
だけで良いのではないか、というのが今 (2012/03/08)
の理解です。
- 都合良く 4 番目に未使用があるが、/mnt としてこれを使うことにする
- Linux 側からは (元の) 3 番目は未使用という扱いにする
- そこで disk 毎に MBR を書替えて 3 と 4 を入替えて使う
今回使う手続の意味は、
- disk の最初の 512 バイトに MBR が書いてある。
- その内訳は 446 + 16 + 16 + 16 + 16 + 2
で、その 16 バイトの部分に区画 1 から 区画 4
までのセクタ位置が書いてある。
- そこでこの 16 バイト毎の中身を入替えたものを用意して、
それをまた先頭から上書きしてしまう
次の作業を始める時に、/mnt 領域の
RAID は外しておきます(「個別 disk として使う」設定にします)。
34 入替の具体的な方法は次の通りです。
(本当は 8 の段階を 4 の前に実行しておけば 7 のエラーは出ません。
ただしその時には(名前の変わる前なので) sda3 等ではなく sda4 等を xfs 形式に初期化する
ことになります。
実はそれを忘れてしまったので、以下のようにしました)
- 手続きを次のところから入手する
MIPS な LinkStation の Linux関連情報
- 最低限の理解をする (mbr を書換えるから、かなり危険。間違えると
/mnt 以下を初期化してなくなる、など)
- Linux 側の適当なところに置く (名前は何でもいいが例えば swap-mbr)
一例
wget http://www.ki.nu/hardware/.TeraStation/script/swap-mbr
- sh swap-mbr を実行する (以下入力するのは反転部分です)
root@TS-TGL1C4:/boot# sh swap-mbr sda 34
Backup MBR file = MBR.orig
Edited MBR file = MBR.new
To write the MBR, exec "dd if=MBR.new of=/dev/sda".
実はこれだけでは MBR は変化しません。新しい MBR (MBR.new) を手元に用意しただけです。
出来た新しい MBR の譜を一応確認します。
root@TS-TGL1C4:/boot# file MBR.new
MBR.new: x86 boot sector
実際に危険なのは次の部分ですが、実行します。
root@TS-TGL1C4:/boot# dd if=MBR.new of=/dev/sda
1+0 records in
1+0 records out
root@TS-TGL1C4:/boot#
- 前項を sdb sdc sddについても行なう
- /sbin/reboot する
- ここで エラーが四回出る。これは 3 番目を mount しようとして不可だと言っている
ので、それが普通です。
- sd[a-d]3 を xfs 形式に初期化します。多分
/sbin/mkfs.xfs /dev/sd[a-d]3 でもいいはずです。
# /sbin/mkfs.xfs /dev/sda3
# /sbin/mkfs.xfs /dev/sdb3
# /sbin/mkfs.xfs /dev/sdc3
# /sbin/mkfs.xfs /dev/sdd3
- 再起動して、df -k で /mnt が小さくなっていることを確認します。
admin@TS-TGL1C4:~$ df -k
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/shm 15360 120 15240 1% /mnt/ram
/dev/ram1 14521 180 13591 2% /tmp
/dev/ts_disk1_3 187976 144 187832 1% /mnt/disk1
/dev/ts_disk2_3 187976 144 187832 1% /mnt/disk2
/dev/ts_disk3_3 187976 144 187832 1% /mnt/disk3
/dev/ts_disk4_3 187976 144 187832 1% /mnt/disk4
admin@TS-TGL1C4:~$
重ね々々かわうちさん、ありがとうございます。
|