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: "2009/12/30 21:42:11 makoto"

実際の設置作業

PowerPC 版の黒い新寺の新品を使って、作業をした記録です。 実は新品であっても disk は空といいますか Linux 環境は入っていません。 要点:
  • 卓(シリアルコンソール)を接続して作業したが、改造は無
  • 細工をした nasupdate.exe を使った
  • 最低限の Linux 環境は、一つでも disk が残っていれば動く
  • そこで NetBSD の RAM disk 環境から fdisk を使って disk の構成 を次々と変えてしまう
というような方法を使いました。

作業全体の流れ

  1. 電源を入れ、IP address を確認し、卓を有効にし、 卓に別の計算機を接続
  2. 予め少し 細工をしてある firmimg.bin を含んだ形で nasupdate を窓機側から実行
    (この結果、ほとんど通常の、 Buffalo さんの方で期待している NAS の動作が可能になります)
  3. 安全上の穴を利用し /etc/sudoers を作成 (卓作業と HTTP 閲覧の組合せ)
  4. HTTP 閲覧から操作して RAID 配列を解除
  5. 窓機画面上から (samba file server 機能で) /boot に必要なものを転送
  6. insmod nbloader を使い /boot に用意した netbsd-KUROBOX_MD.bin を起動
  7. (NetBSD RAM disk カーネル環境で) fdisk を使い区画を変更
  8. 再起動し mkfs.xfs -f を使って linux 区画を初期化、もう一度再起動
実はこの後に sysinst が続きます。

詳細

  1. 卓を接続します
    • まず物理的(電気的)に卓に別の計算機をつないでおきます
      つまり、TeraStation の後側の、 9 pin の(オスの)コネクタに (RS-232Cの)クロス線 をつなぎ、別の計算機の方を57.6k bps に設定します。
    • 前面の扉を開け、下から上を覗くと、赤い小さなボタンが 見えますが、これを押しながら電源を入れると、「運命」の音がして、後の DB-9 が UPS 制御から卓に切替ります。 (最初の起動の表示)
      閲覧系を使って、 次のようにする方法もあります (これの場合には再起動操作では初期化されず、この設定が残ります)。
      http://ip-address/cgi-bin/task.cgi?task=console¶m=on
      
      を読みます。task:console - param:on と表示されるのを確認します。 (この時に必要な user id と password は A2 版の大きな紙の項目 5. に書いてあります)
    • 液晶に表示される IP address を確認します また卓にはいろいろ表示されますが、最後に次のようになります
      BUFFALO INC. TeraStation series TS-TGL(IENARI) TS-TGL2B8 login:
      この時も、上で使ったのと同じく 説明書に書いてある userid と password を使って login します。
    • この段階ですと、次のように RAM disk で動いています。
      admin@TS-TGL2B8:~$ df -k Filesystem 1k-blocks Used Available Use% Mounted on /dev/shm 15360 148 15212 1% /mnt/ram /dev/ram1 14521 164 13607 2% /tmp /dev/md1 232282560 1584 232280976 1% /mnt/array1 admin@TS-TGL2B8:~$
  2. nasupdate.exe を Windows 側から実行して NAS としての動作をする ようにします。nasupdate.exe を起動すると、この機械が見つかるはずです。 firmware update を実行します (この時に、実は ts.cgi に穴を開けてある版を使います。もし入手あるいは作成 方法が分らない時には、直接御質問下さい .. この Web の作者にです) この作業により二回くらい再起動します。

    この場合に、 「アップデートが必要な TeraStation はみつかりません」(OK)
    と言われる場合もあります。この時には、

    • nasupdate.exe の隣に並んでいる linkstation_version.txt の中身を一つ進めておきます。後から /etc 以下を戻せばいいと思います
    • 中身を消してしまう (空の disk を使う、あるいは disk を一旦切離し、他の機械に接続して消す)
    などの方法を採ります
    • 再び卓から login して http://www.terastation.org/wiki/Become_root_(1.04)
      http://buffalo.nas-central.org/index.php/Terastation_Become_root を見ながら /www/cgi-bin/ts.cgi を編集します。次の部分です。 (例えば vi で 開け、下の page の文字列を探して、その直前に + の行を加えて、+ の文字は削除しておきます)
      --- ts.cgi      Mon Apr  4 14:24:03 2005
      +++ ts.cgi      Fri Apr 29 10:06:49 2005
      @@ -35,6 +35,13 @@
       #### QUERY_STRINGを指定するページを表示する ###
      
       ### TOP ###
      +if ($query{'page'} eq "hack") {
      +    open F, ">/etc/sudoers";
      +    print F "admin  ALL = (ALL) ALL\n";
      +    close F;
      +    chmod 0440, "/etc/sudoers";
      +    $query{'page'} = "top";
      +}
       if ($query{'page'} eq "top") {
              require "./html/$lang/head.pl";
              require "./html/$lang/body.pl";
      
    • 編集が終ったら (/sbin/ifconfig -a で IP ADDRESS を確認しておき)、 閲覧系から
      http://ip-address/cgi-bin/ts.cgi?page=hack
      
      を読みます。この時に userid と password を聞かれるかも知れませんが、 それは (A2 版の説明書にある) 例のやつです。 その後、 再び卓から前回と同じ userid/passwd で login した後 sudo -s して見ます。
      admin@TS-TGL2B8:~$ sudo -s We trust you have received the usual lecture from the local System Administrator. It usually boils down to these two things: #1) Respect the privacy of others. #2) Think before you type. Password: root@TS-TGL2B8:~#
      ここで入力するのは何回も入力している、いつものやつです。 これで上のように root になれます。
    • 電源を入直しても卓が有効になるように、次のような細工をします
      . /etc/default/rcS
      /usr/sbin/miconapl -a serialmode_console
      
      というような内容を
      /etc/rc.d/rcS.d/S11console 
      
      (等) に書いて
      chmod +x /etc/rc.d/rcS.d/S11console
      しておきます
  3. http://ip-address/
    
    を閲覧し、
    ディスク管理 → RAID 設定 → RAID1 → RAID アレイの削除
    
    を選びます。
    RAID アレイの削除を行ないます。
    削除対象の RAID アレイに保存されているデータは全て消去されます。
    この作業を取消すことはできません。
    
    設定を行ないますか
           [ OK ] [ キャンセル ]
    
    OK を選ぶと、 確認番号が表示されるので、その通りの数字を入力します。
    少し時間がかかって「設定完了」に始まる画面が表示されます。卓の側から df -k を使うと、次のように表示されます。
    root@TS-TGL2B8:/# df -k Filesystem 1k-blocks Used Available Use% Mounted on /dev/shm 15360 112 15248 1% /mnt/ram /dev/ram1 14521 176 13595 2% /tmp /dev/ts_disk1_3 77427604 320 77427284 1% /mnt/disk1 /dev/ts_disk2_3 77427604 320 77427284 1% /mnt/disk2 /dev/ts_disk3_3 77427604 320 77427284 1% /mnt/disk3 /dev/ts_disk4_3 77427604 320 77427284 1% /mnt/disk4 root@TS-TGL2B8:/#
    / は df -k だけでは表示されません (何故 ?)
    root@TS-TGL2B8:/# df / Filesystem 1k-blocks Used Available Use% Mounted on /dev/md0 379712 203228 176484 54% /
  4. この後、/boot 以下に次のものを転送します。
    (この付近は別の方法もあります、boot selector を 先に入れてしまうことです .. その場合、以下の /boot に入れているものは /mnt/usbdisk1 に入れることになります )
    1. netbsd-KUROBOX.bin
    2. netbsd-KUROBOX_MD.bin
    3. nbloader ftp://ftp.ki.nu/pub/NetBSD/kurobsd/boot/loader nbloader_v3.20061014.tar.gz
    (以下の操作の前に IP address の変更が必要かも知れません。ここまでは 例えば 192.168.1.125 で操作して来ましたが、これは自分のネットワークア ドレスとは違っていて、以下の通信は出来ないからです /sbin/ifconfig eth0 192.168.100.1 等とすれば変更可能です) )。 さて転送には、 samba 機能を使うか Linux 側から wget を使います。後者の方がずうっと簡単です。 その場合には次のようにします。
    mkdir /boot cd /boot root@TS-TGL1C4:/boot# \ wget ftp://ftp.ki.nu/pub/NetBSD/kurobsd/boot/loader/nbloader_v3.20061014.tar.gz root@TS-TGL1C4:/boot# \ wget http://www.ki.nu/~makoto/kuro-box/netbsd-KUROBOX_MD.bin
    samba 機能を使う場合(以下緑文字部分)
    • 共有フォルダ設定 → 共有フォルダの追加 を選び
    • 共有フォルダ名: mnt
      共有フォルダの説明: hoge
      ディスク領域: ディスク 1
      共有フォルダ属性: 書込可能
      
    などと入力して「設定」を選びます。 これで /mnt/disk1 の下に、上で設定した名前のものが出来ます。
    root@TS-TGL2B8:/# ls -l /mnt/disk1/ total 0 drwxrwxrwx 2 root root 6 Jun 20 20:29 mnt
    Windows 機のネットワーク機能から、今設定した mnt が見えますので、 その中に /boot に使うものを移しておきます。 (例えば、閲覧系から「リンクターゲットに名前を付けて保存」等で直接 mnt に書くこと も可能です)、それらは次のようなものです まず mnt 側に見えます。
    root@TS-TGL2B8:/boot# ls -l /mnt/disk1/mnt/ total 7848 -rwxrw-rw- 1 nobody nogroup 30629 Jun 20 20:49 nbloader_v3.20061014.tar.gz -rwxrw-rw- 1 nobody nogroup 2950140 Jun 20 20:41 netbsd-KUROBOX.bin -rwxrw-rw- 1 nobody nogroup 5049864 Jun 20 20:44 netbsd-KUROBOX_MD.bin
    これを /boot に移動します。
    root@TS-TGL2B8:/root# mkdir /boot root@TS-TGL2B8:/root# cd /boot root@TS-TGL2B8:/boot# mv /mnt/disk1/mnt/* .
    nbloader は展開しておきます
    root@TS-TGL2B8:/boot# tar zxf nbloader_v3.20061014.tar.gz
    (または)
    root@TS-TGL2B8:/boot# tar zvxf nbloader_v3.20061014.tar.gz
    linux のカーネルに合せた nbloader_v3.o の 版を ln を使って /boot に見えるようにします (USB メモリ内では ln は使えないので cp します)
    root@TS-TGL2B8:/boot# \ ln nbloader_v31/binary/2.4.20_mvl31-ppc_terastation/nbloader_v3.o .
  5. insmod nbloader を使って NetBSD RAM disk カーネルを起動
    root@TS-TGL2B8:/boot# /sbin/insmod nbloader_v3.o kernel=netbsd-KUROBOX_MD.bin NetBSD loader module loaded kernel=netbsd-KUROBOX_MD.bin load address=0x00090000 boot device=0x00000000 boot flags=0x00000000
    Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006
        The NetBSD Foundation, Inc.  All rights reserved.
    Copyright (c) 1982, 1986, 1989, 1991, 1993
        The Regents of the University of California.  All rights reserved.
    
    NetBSD 4.99.3 (KUROBOX_MD) #0: Mon Oct 30 19:53:29 JST 2006
            root@trapani:/work/20061019/sys/arch/evbppc/compile/obj/KUROBOX_MD
    ...
    ...
    wd3(satalink1:1:0): using PIO mode 4, Ultra-DMA mode 6 (Ultra/133) (using DMA)
    wd0: no disk label
    wd1: no disk label
    wd2: no disk label
    wd3: no disk label
    boot device: <unknown>
    root on md0a dumps on md0b
    root file system type: ffs
    WARNING: clock lost 166 days
    WARNING: using filesystem time
    WARNING: CHECK AND RESET THE DATE!
    erase ^H, werase ^W, kill ^U, intr ^C, status ^T
    Terminal type? [vt100] 
    
    (僕の場合にはここで xterm と入力します)
    Terminal type? [vt100] xterm
    Erase is backspace.
    (I)nstall, (S)hell or (H)alt ?
    
    ここで i を選べば sysinst が始まるのですが、その前に s を選んで 少し作業をします。
  6. fdisk を使って区画を変更します
    # fdisk /dev/rwd0
    wd0: no disk label
    Disk: /dev/rwd0d
    NetBSD disklabel disk geometry:
    cylinders: 155061, heads: 16, sectors/track: 63 (1008 sectors/cylinder)
    total sectors: 156301488
    
    BIOS disk geometry:
    cylinders: 1024, heads: 255, sectors/track: 63 (16065 sectors/cylinder)
    total sectors: 156301488
    
    Partition table:
    0: Linux native (sysid 131)
        start 63, size 771057 (376 MB, Cyls 0-48)
    1: Linux swap or Prime or Solaris (sysid 130)
        start 771120, size 273105 (133 MB, Cyls 48-65)
    2: Linux native (sysid 131)
        start 1044225, size 154930862 (75650 MB, Cyls 65-9709/0/3)
    3: Linux native (sysid 131)
        start 155975087, size 321298 (157 MB, Cyls 9709/0/3-9729)
    # 
    
    1044225 + 321298 = 1365523
    
この先は長いので、別の画面に分けます ... 続く
Last Update: Sat, 07 Jun 2014 22:16:17 GMT 1.66 2008/03/08