TeraStation
    自分の日記など
    その他の URL
設置
  作業方針など
    Linux 設定
      新品の場合
      disk を入替えた場合
    Root で login
    区画
    sysinst
    multi user で起動
      fdisk
    課題
  実際の設置作業
    作業全体の流れ
    詳細
  fdisk
    再起動
    mkfs.xfs
      RAID5 解除前
  sysinst
    fdisk
    disklabel
    fetch
  raid
    disklabel を写す
OS設置後
  RAID
      raid.conf
    区画
  raid 5
    raid0.conf
  raidctl
    用語
    操作
  swap34
    34 入替
  disk 入替
  mfdisk -c
  危険
作業例
  20080302
    追加 patch
    NetBSD 設置後
    boot selector
  20120302
    NetBSD 以前
      卓をつなぐ
      nasupdate
      admin で login
      ts.cgi を変更
      ts.cgi を実行
      sudo -s を確認
      RAID の解除
      一時ネットワーク
    USB メモリを用意
    RAID5 設定
      fdisk
      raid 設定
    sysinst
    pkgsrc
    raid
    problem
RAID HowTO
  20080428
    sysinst(fdisk)
    sysinst(disklabel)
    raid5
    sysinst (raid)
    multi-user
    raidctl -iv
  disk 障害
  boot selector

hardware | kuro-box | NetBSD/kuro-box | software

TeraStation

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 を割当てる」という課題があります。 言替えると、
  1. Linux 側を何事もなかったかのように動かす
  2. NetBSD 領域を確保する
で、 これを解決する一つの方法が 34 入替です。

実は、以下に書いてあるような複雑なことをしないでも、単に fdisk を使って大きさを入替える だけで良いのではないか、というのが今 (2012/03/08) の理解です。

  • 都合良く 4 番目に未使用があるが、/mnt としてこれを使うことにする
  • Linux 側からは (元の) 3 番目は未使用という扱いにする
  • そこで disk 毎に MBR を書替えて 3 と 4 を入替えて使う
今回使う手続の意味は、
  1. disk の最初の 512 バイトに MBR が書いてある。
  2. その内訳は 446 + 16 + 16 + 16 + 16 + 2 で、その 16 バイトの部分に区画 1 から 区画 4 までのセクタ位置が書いてある。
  3. そこでこの 16 バイト毎の中身を入替えたものを用意して、 それをまた先頭から上書きしてしまう
次の作業を始める時に、/mnt 領域の RAID は外しておきます(「個別 disk として使う」設定にします)。 34 入替の具体的な方法は次の通りです。 (本当は 8 の段階を 4 の前に実行しておけば 7 のエラーは出ません。 ただしその時には(名前の変わる前なので) sda3 等ではなく sda4 等を xfs 形式に初期化する ことになります。 実はそれを忘れてしまったので、以下のようにしました)
  1. 手続きを次のところから入手する
    MIPS な LinkStation の Linux関連情報
  2. 最低限の理解をする (mbr を書換えるから、かなり危険。間違えると /mnt 以下を初期化してなくなる、など)
  3. Linux 側の適当なところに置く (名前は何でもいいが例えば swap-mbr)
    一例
    wget http://www.ki.nu/hardware/.TeraStation/script/swap-mbr
  4. 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#
  5. 前項を sdb sdc sddについても行なう
  6. /sbin/reboot する
  7. ここで エラーが四回出る。これは 3 番目を mount しようとして不可だと言っている ので、それが普通です。
  8. 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
  9. 再起動して、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:~$
重ね々々かわうちさん、ありがとうございます。
Last Update: Sat, 07 Jun 2014 22:16:17 GMT 1.66 2008/03/08