[FreeBSD-users-jp 95477] Re: SSDコピーでハマってます。(西村)
統計数理研究所の丸山です。 (Spam 扱いされないよう願って) 少し改良しました。 >Date: Sun, 1 Mar 2015 21:22:35 +0900 (JST) >From: maruy...@ism.ac.jp (丸山直昌) >- 複製元SSDは /dev/ada0 で、FreeBSD10.1 のfullシステムが /dev/ada0p2 に > ufs で入っている(パーティション分けはしてない) >- このシステムを /dev/ada1 の SSD にコピーして、ちゃんと起動するディス > クを作りたい。 >- コピー作業は liveCDで起動した FreeBSD10.1 上で行なう。 > >という条件で考えます。一つの答えは > >gpart create -s mbr ada1 >gpart bootcode -b /boot/boot0 /dev/ada1 >gpart add -t freebsd ada1 >bsdlabel -w -B -b /boot/boot /dev/ada1s1 >gpart modify -i 1 -t freebsd-ufs /dev/ada1s1 >newfs -J -U -t /dev/ada1s1a >mount /dev/ada1s1a /tmp/X >dump 0f - /dev/ada0p2 | (cd /tmp/X; restore rf -) >/tmp/X/etc/fstab を直す(/dev/ada0p2 だったところを /dev/ada1s1a に) ここなんですが、小野さんに教えて頂いたことを実験してみましたところ、 gpart create -s GPT ada1 gpart add -t freebsd-boot -s 40 ada1 gpart add -t freebsd-ufs ada1 gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1 newfs -J -U -t /dev/ada1p2 mount /dev/ada1p2 /tmp/X dump 0f - /dev/ada0p2 | (cd /tmp/X; restore rf -) /tmp/X/etc/fstab を直す(/dev/ada0p2 だったところを /dev/ada1p2 に) でできました。こっちの方が1行少ないですし、 ada1s1a じゃなくて ada1p2 ですから、何となくすっきりしますね。 小野さん、有難う。 これで複製元をどういうものかだいたい想像がつきました。 gpart show ada0 の出力は => 34 250069613 ada0 GPT (119G) 34 6- free - (3.0K) 40 40 1 freebsd-boot (20K) 80 250069560 2 freebsd-ufs (119G) 250069640 7- free - (3.5K) のような感じですか?容量は違うかも知れませんが。 丸山直昌@統計数理研究所 ___ 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"
[FreeBSD-users-jp 95476] geom と boot code
小野寛生です。 もとの丸山さんのメールがMLに届いているのかわかりませんが、 > そろそろ Subject 変えませんか? > > geom と boot code > > っていうSubject で色々教えて頂きたいです。 とのことですが、man gptboot と man gpart したら書いてあります。 2015年3月1日 21:45 丸山直昌 : > 小野 様 > > 統計数理研究所の丸山です。 > >>Date: Sun, 1 Mar 2015 20:58:02 +0900 >>From: Hiroo Ono (小野寛生) > >>「これが正しいたったひとつの方法」だというものはないと思います。 > > そりゃそうですね。でも「答えは色々あるんだけどねー」では質問者の助けに > はならないでしょう?それよりは「ベストでなくても確実な答えを一つ」が良 > いと思った次第。 > >>と書かれているので、実際は MBRではなくGUIDパーティションを使っていて >> >>gpart add なんたら >>gpart add なんたら >>gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1 > > これこれ、私 geom ってこれまで使ったことなくてわかららず、これから調べ > ようかなと思っていたところです。教えてくださって有難う。 > > 私が古典的DOSスライス(geomの用語では MBR スキームって言うのですか?)し > か使わなかった理由は、Windowsマシンを買って、Windowsの領域を縮小して > FreeBSDを入れる、ということを主にやっていて、インストーラーの「お任せ > インストール」は恐くて使えず、領域作成はいつも fdisk と bsdlabelでやっ > ていたからです。 > > そのため最近の FreeBSDの「お任せインストール」がどのような結果になるの > か知りません。小野さんなら御存じですか?西村さんの /dev/ada0p1 には何 > が入っているの?grub ですか? > > 私は「最近のFreeBSDのお任せインストール」は zfs かと想像していたのです > が、西村さんがufs を使っているというので、そこもちょっと疑問に思いまし > た。 > > そろそろ Subject 変えませんか? > > geom と boot code > > っていうSubject で色々教えて頂きたいです。 > > > 丸山直昌@統計数理研究所 ___ 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"
[FreeBSD-users-jp 95475] Re: SSDコピーでハマってます。(西村)
統計数理研究所の丸山です。 実は私も最近 SSD(しかも2個)を調達して、まさに自分が使っている Lenovo X230に付けようとしていたので、西村さんと殆ど同じ環境を再現できる状況で した。そこで、今日の日曜日の計画をキャンセルして実験してみました。結論 から書きます。 - 複製元SSDは /dev/ada0 で、FreeBSD10.1 のfullシステムが /dev/ada0p2 に ufs で入っている(パーティション分けはしてない) - このシステムを /dev/ada1 の SSD にコピーして、ちゃんと起動するディス クを作りたい。 - コピー作業は liveCDで起動した FreeBSD10.1 上で行なう。 という条件で考えます。一つの答えは gpart create -s mbr ada1 gpart bootcode -b /boot/boot0 /dev/ada1 gpart add -t freebsd ada1 bsdlabel -w -B -b /boot/boot /dev/ada1s1 gpart modify -i 1 -t freebsd-ufs /dev/ada1s1 newfs -J -U -t /dev/ada1s1a mount /dev/ada1s1a /tmp/X dump 0f - /dev/ada0p2 | (cd /tmp/X; restore rf -) /tmp/X/etc/fstab を直す(/dev/ada0p2 だったところを /dev/ada1s1a に) です。前のメールでは boot0cfg を使う、と書きましたが、 gpart bootcode -b /boot/boot0 /dev/ada1 でも良いことがわかりました。 dump+restoreのところは mount /dev/ada0p2 /mnt; (cd /mnt; tar cf - .)|(cd /tmp/X; tar xfp -) にしても大丈夫でした。 ケアレスな打ち間違いは絶対にしないでください。一つ間違うと、複製元を壊 します。"p" と "s" の違い、 "0" と "1" の違いなどは絶対に間違わないで、 厳格にこの通りやってください。 既に ada1 に geom 情報が何か書き込まれていると、冒頭の gpart でいきな りエラーになります。 gpart を使って既存の geom 情報を消すことはできま すが、私はせっかちなので、 dd if=/dev/zero of=/dev/ada1 count=1000 とかやって先頭の方の情報をごっぞり破壊してから上の作業をやります。ここ で ada1 を ada0 と間違えると、どんな悲劇が起こるか、想像できますよね? 想像できない人は、この作業には手を出さない方が良いでしょう。回復方法が ありませんから注意してください。 この方法では /dev/ada0p2 とかが /dev/ada1s1a とかに変わってしまいます。 つまりディスクのデッドコピーではありません。 stage0 boot code と stage1 boot code は全く違ったものに置き換わり、ブート時の様子はかなり 違ったものになると思います。ただしOS起動後は同じ動作をしますので、サー バーとしては同じように使えるはずです。 boot code も含めてコピーする方法は、これから調べてみますが、そのために お使いの「複製元」の geom 情報が必要になると思います。 gpart show の出力を私にお送りください。 丸山直昌@統計数理研究所 ___ 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"
[FreeBSD-users-jp 95474] Re: SSDコピーでハマってます。(西村)
小野寛生です。 2015年3月1日 19:54 丸山直昌 : > 統計数理研究所の丸山です。 > 正しいシステムコピーの方法は、 「これが正しいたったひとつの方法」だというものはないと思います。 > 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つで済むことに何でそんな > 労力かけていたのですか? 「最小システムをインストールする」 を、 「fdisk して bsdlabel -B して newfs して boot0cfg して」 の代用にするのは、特にここが問題になるということは思い当たりません。 それはそれで正しい手順だと思います。 覚えることが少なくて済むという利点もあると思います。 あとまあ、 >> #mount /dev/ada0p2 /mnt >> #mount /dev/ada1p2 /tmp/x と書かれているので、実際は MBRではなくGUIDパーティションを使っていて gpart add なんたら gpart add なんたら gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada1 という感じになると思います。このへんの変化を吸収してくれるという利点もあるかもしれません。 私が気がついていなくて、何か問題があるようでしたらご指摘ください。 やりかたを云々するなら、昔は dd で disk to disk でコピーするなんて話もよくみかけましたし、 私は試してみたことはありませんが、(大きな容量のディスクに対して) dd で disk to disk でコピーして fdisk と bsdlabel でスライスとパーティションを広げて growfs で fs 領域を広げる という手順だってあると思います。(growfs がきちんと動くのかは知りません) >> #mount /dev/ada0p2 /mnt >> #mount /dev/ada1p2 /tmp/x >> #(cd /mnt;tar cf - [bc,e-v]*) |(cd /tmp/x;tar xvf -) という手順も、(ここでも見落としていたらすみませんが) ぱっと見は問題があるようには見えません。 (tar で絶対パスでアーカイブしてしまったとかなら問題ですが) だからこそ、tar でコピーを行った際に出たエラーメッセージがわからないと、どういう問題が起きているのかわからず解決しようがないと思います。 というわけで、私は「解決方法」そのものではなく「エラーメッセージを取得する」手順を提案しています。 ___ 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"
[FreeBSD-users-jp 95473] Re: SSDコピーでハマってます。(西村)
統計数理研究所の丸山です。 昨日何回か 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 >小野さま >丸山さま > >西村です >色々助言あり難うございます > >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 wheel512 Feb 28 10:09 .ICE-unix >drwxrwxrwt 2 root wheel512 Feb 28 10:09 .X11-unix >drwxrwxrwt 2 root wheel512 Feb 28 10:09 .XIM-unix >drwxrwxrwt 2 root wheel512 Feb 28 10:09 .font-unix >drwxr-xr-x 2 root wheel512 Feb 27 18:03 bsdinstall_boot >drwxr-xr-x 2 root wheel512 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"