統計数理研究所の丸山です。

昨日何回か freebsd-users-jp@freebsd.org に出したのですが、全部

    SpamAssassin identified this message as possible spam

って言われてしまって、配送されません。困ったもんだ。これは届いて欲しい
です。昨日は以下のようなメールを出しましたが、西村さにだけ届いたようで
す。一応参考まで。

----------------------------------------------------------------
西村 様

統計数理研究所の丸山です。

失礼は承知で率直に言わせて頂きますが、

>わたしは、2.x時代から4.xまで、システムHDD複製/引越の際は、最小システムをインストールしておいてブート可能なHDDを作り、そこにtarで複製元から上書きするという横着な方法でやってきまし田野で

という方法が根本的に問題です。しかもこの方法でうまくいったとしても、労
力は節約どころか、むしろ多くかかると言わざるを得ません。「横着な方法」
と仰いますが、 boot0cfg と bsdlabel の -B オプションの正しい使い方を理
解するための勉強をする手間を省いただけの意味で、今後その横着な方法」が
通用しないのであれば、正攻法でこの二つのコマンドの使い方を理解するしか
ないと思います。現在 tar や dump で遭遇しているエラーメッセージの解析
にお付き合いすることに何の意義もないと思います。

正しいシステムコピーの方法は、

0. デバイス上に領域を確保する
1. newfs でファイルシステムを作る
2. 複製元をnewfs で作ったファイルシステムにコピーする
   (私の好みはdump+restore ですが、ここは最近の弱点が少ない tar でも可
    能かも知れません)
3. boot0cfg で新しいデバイスの stage0 boot code を正しく設定する
4. bsdlabel コマンドの -B オプションで stage1 boot code を正しく設定する
5. 必要に応じて 新しいシステムの /etc/fstab とか /etc/hostname などを直す

です。2.x時代から4.xまで成功していたという「横着な方法」の最初の部分の
「最小システムをインストールする」というところが、実は3,4 のステップの
代用になっていたわけです。でもたったコマンド2つで済むことに何でそんな
労力かけていたのですか?

で、3 は1,2 の前にやっても大丈夫なのですが、最近の FreeBSD で 4 をステッ
プ 2 の前に済ませることができるか、私は自信がありません。良いかも知れ
ません。もし良ければ 0 3 4 1 2 5 とやってコピーしたシステムが気に入ら
ずに、他の複製元を使いたくなったとき、0, 3, 4 は省いて 1, 2, 5 とやれ
ば良いわけです。

なお、SunOS や Solaris では 3,4 はまとめて installboot というコマンド
でやりますが、これは記憶によれば 2 の後でないと動きません。1,2 をやり
直すと、以前起動が成功していたディスクでももう一度 installboot をやる
必要があったと記憶しています。

tar が出すエラーは、多分 /mnt2 の方がマッサラでない状況で上書きするた
めに生じる問題ではないかと思いますが、それを解明しても、「最小限のシス
テム」に依存する解決策にしかならないので、OSのバージョンが変わるごとに
似たような問題に遭遇するでしょう。

dump+restore に関しては、パラメーターの指定でケアレスミスをしているよ
うに見えますが、そもそも restore はマッサラな(newfsしたての)ファイルシ
ステムに書き込むためのコマンドなので、 boot0cfg と bsdlabel -B を習得
する気になって頂かないと、ケアレスミスを指摘しても、徒労に終ると思いま
す。

>Date: Sat, 28 Feb 2015 11:45:17 +0900
>From: yoshihome <ilov...@topaz.plala.or.jp>

>小野さま
>丸山さま
>
>西村です
>色々助言あり難うございます
>
>root@koubou9:/ # ( cd /mnt ; tar cf - 2 > /tmp/error-from.log ) | ( cd 
>/mnt2 ; tar xf - 2 > /tmp/error-to.log )
>tar: 2: Cannot stat: No such file or directory
>tar: 2: Not found in archive
>tar: Error exit delayed from previous errors.
>
>root@koubou9:/tmp # ls -l
>total 108
>drwxrwxrwt  2 root  wheel    512 Feb 28 10:09 .ICE-unix
>drwxrwxrwt  2 root  wheel    512 Feb 28 10:09 .X11-unix
>drwxrwxrwt  2 root  wheel    512 Feb 28 10:09 .XIM-unix
>drwxrwxrwt  2 root  wheel    512 Feb 28 10:09 .font-unix
>drwxr-xr-x  2 root  wheel    512 Feb 27 18:03 bsdinstall_boot
>drwxr-xr-x  2 root  wheel    512 Feb 27 18:08 bsdinstall_etc
>-rw-r--r--  1 root  wheel  70361 Feb 27 18:08 bsdinstall_log
>-rw-r--r--  1 root  wheel  10240 Feb 28 10:58 error-from.log
>-rw-r--r--  1 root  wheel      0 Feb 28 10:58 error-to.log
>root@koubou9:/tmp #
>
>問題のログファイルは読めませんでした。
>
>FBSD4.xのころはCDブートサーバーを盛んに使ったのですが、その頃作ったサー 
>バとそのコピーがコマンドを忘れてしまうくらい長く10年? ぐらい問題なく動 
>いているので疎くなっているのはご容赦ください。上のコマンドの意味は分かる 
>のですがエラーになってしまいました。
>
>>で良かったのかな?私は ># dump 0f - /dev/ad0sx |(cd /tmp/x; restore 
>rf -)
>については
>
>root@koubou9:/ # dump 0f - /dev/ad0p2 | ( cd /mnt2 ; restore rf - )
>dump: Cannot open /dev/ad0p2: No such file or directory
>Tape is not a dump tape
>root@koubou9:/ #
>
>となりました。
>
># dump 0f - /mnt | ( cd /mnt2 ; restore rf - )
>
>としても
>
>root@koubou9:/ # dump 0f - /mnt | ( cd /mnt2 ; restore rf - )
>dump: /mnt: unknown file system
>Tape is not a dump tape
>
>でした。
>
>>boot0cfg というコマンドをご存知ですか?dump+restoreでシステムを一つの
>>デバイスから他のデバイスにコピーする場合
>
>>newfs
>>dump
>>restore
>>boot0cfg
>
>>の4つのコマンドを正しい順序で使い、最後に必要ならば新しいシステム上の
>>/etc/fstab を書き換える必要があります。というわけで、ご存知かどうかお
>>尋ねする次第です。
>
>
>わたしは、2.x時代から4.xまで、システムHDD複製/引越の際は、最小システムをインストールしておいてブート可能なHDDを作り、そこにtarで複製元から上書きするという横着な方法でやってきまし田野でdumpは使ったことがありません。boot0cfgはスライスをブート可能にするためのコマンドですよね。勉強不足で済みません。
>
>現状としては、パーティションを切ってブート可能なディスクにtarまたはrsyncどちらでもコピーすることでHDDコピー出きるようになりました。
>dumpだとコピーが早そうなので興味はあるのですが、ネットに転がっている情報が古かったりするのでどれが正しいのやら。。。

--------
丸山直昌@統計数理研究所
_______________________________________________
freebsd-users-jp@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-users-jp
To unsubscribe, send any mail to "freebsd-users-jp-unsubscr...@freebsd.org"

メールによる返信