GParted大活躍
2011年 02月 06日
Windows再インストールのついでに、Linux各種ディストリビューションを
いろいろ試せるようにマルチブート環境を作ってみた。
しかも単なるマルチインストールではなく、SSD/HDD分業で。
SSD/HDDの分け方はオーソドックスにサイズが小さく読み出し頻度が高いものを
SSDに、その他雑多なやつをHDDに。手段と手順を間違わなければさほど
難しいことではないのだが、この方法を確立するまでかなり試行錯誤してたり。
…とゆことで、今回インストールするディストリビューションは6種。
全て64bit版で。
[1] Debian 5.0.7
通称でびぃ。
余計なことをしないのがモットーとかなんとか。
なので少々敷居は高いかもしんないけど、いろいろと融通は利く…はず。
[2] Fedora 14
通称ふぇでぃ。
Red Hatの人柱的な存在である。そのため進化は速いとか。
[3] Ubuntu 10.10
通称うぶんちゅ。
Debianベースだが、とっつきのよさが追求されており、
エンドユーザを意識した進化を続けている。
ただし、用意されたソフトにないことしようとするとハマりがち。
[4] openSUSE 11.3
通称すーじぇ。
天敵Microsoftの息がかかっているためオープンソーサーに畏れられているとかなんとか。
10.1時代に使っていたが、自動更新ツールがCPUリソースをガメてて重い
ことが発覚したのでグッバイした。案の定大ブーイングだったようで、
今では自動更新ツールを一新して格段に軽くなっている模様。
[5] Vine 5.1
通称ぶどー。
かつて日本語に強いと定評あったようだが、今では他のでも普通に使えるし。
それよか、他のディストリビューションがいろいろゴテゴテ詰め込み続けてきた
中で1CDを通してきたことが印象深い。
(注:Vine5.2だめぽ)
[6] CentOS 5.5
通称せんとくん。
サーバ向けとして最近評判のようだが、まだ一度も使ったことないので
よくわかんない。
で、最初にインストールするのはいろいろと融通利かないWindows。
問答無用でMBR書き換えてマルチブート環境を壊してくれる厄介者である。
でもまー、インストール作業自体特に問題はない。
てゆか、融通利かなくて妙なことすると調子悪くなるからやんないんだけど。
そんなわけで、SSDに30GB確保してブチ込む。
次はMBM。MBRも含め第1パーティション前の余った部分にチョチョイと書き込むだけ
なので専用のパーティションを用意する必要はない。
再起動するとMBMが起動、ここでWindowsのパーティション選んで起動できれば成功。
この後、Linux各種ディストリビューションを次々と。
どれも基本的に以下の手順で。
[1] GPartedのCD入れて再起動 → パーティショニング
5つ以上マルチブートするため、Linuxは論理パーティションに配置する必要がある。
そのためには、拡張パーティションを用意してその中に論理パーティションを作る。
こんな感じで細かい場所取りするには、OSインストーラ付属のやつより使い勝手いい。
インストール後の使用量を見ると10GBほどでも足りそうだが、インストール中に
多くのテンポラリを要するので、この段階でケチるとインストールは失敗する。
とりあえず30GBほど確保しておき、後で縮小する方針で。
あと、HDD側に論理パーティションで2GBのswapと80GBのext3を用意。
これは全ディストリビューションで共用する。
(因みに、6種インストール済の段階でext3側の使用量は16GBほど。後でいろいろ追加で増える予定。)
なお、インストール先パーティションは6種分いっぺんに用意するのではなく、
1つずつ用意してインストール後に縮小しつつ追加という方針で。
[2] LinuxのCD入れて再起動 → インストール
気をつけなければならないことがいくつか
・インストーラのパーティショニングは手動で
全ディストリビューションで自動設定が規定だったりするので要注意。
SSD側のパーティションは初期化する。
HDDの共用パーティションもマウント対象にしておく(こっちは初期化しないように)
・システム時間はUTCにするべからず。Windowsの時計がズレまっせ。
CentOSはUTCが規定なので注意。
・GRUBインストール先はLinuxをインストールしたパーティションに
MBRに書き込まないように。ミスってもすぐ修復できるけど。
それよか、関係ないパーティションに入れてしまうと後でわけわかんなくなるので
超注意。
また、HDD装置番号間違ってて起動できないケースあるので、
可能であれば再起動前に/boot/grub/menu.lstを確認
ついでに、シングルユーザモード起動用の項目がなかったら作っておくとよい。
通常起動用のやつコピペって single を追記するだけでよい。
あと、hiddenmenu封印したり、timeoutの秒数決めたりとか。
[3] インストールしたパーティションから再起動 → 起動確認&各種設定
とりあえず、Ubuntuはコケる。
GRUB2に起因する問題らすぃ
解決までの道程は長いので後述。
GRUBまでいかなかったら、GRUBのインストール先が間違ってる可能性大。
GPartedまたは他のインストール成功したやつ(ただし、Debian,Vine,CentOSは
ext4認識しないのであしからず)でインストールパーティションを適当にマウントして
# grub-install --root-directory=マウント先ディレクトリ インストールパーティション
で入れ直せる。
GRUBから先でコケてる場合、GRUBの設定が間違っている可能性大。
これも、GPartedまたは他のインストール成功したやつでインストール
パーティションを適当にマウント。マウント先ディレクトリ/boot/grub/menu.lst の
最後の方を確認。
title なんたらかんたら
root (hd0,4) ←ここの数字2つが合ってるか確認
kernel /boot/vmlinuz(中略) root=/dev/sda5 ←ここの文字,数字が合ってるか確認
initrd /boot/initrd(中略)
(hd?,?)形式と/dev/*形式の対応の半分は、同ディレクトリのdevice.mapで解る。
もう半分、最後の数字は前者+1=後者が成り立つ。
(因みにGRUB2だと前者=後者になる。ややこい)
あと、VineなんかだとGUIインストールでエラー出てCUIで代用されたり。
CUIでインストールすると再起動後もCUIになる。
GUIの方がよかったら /etc/inittab を編集。
id:3:initdefault:
の数字を5にするだけ。
[4] インストールしたパーティションからシングルユーザモードで再起動
ここでは、SSD→HDD側の移動を行う。
そのためには、余計なプロセスが動いていると失敗する。
念のため
# init 1
で余計なプロセスを黙らせる。
移動対象は /home /opt /srv /usr /var /tmp 根刮ぎで
最初にすべきことは、ログの確認
# ls -l /var/log
やたらと巨大なログファイルができてたので、移動作業でハマタことあり(Vine、ヲマエダ)
巨大なログファイルなんか要らないので、サイズ0のファイルで上書きしとく。
んで、 /etc/fstab を編集
(移動作業中、一時的にviとか使えなくなるので先にいぢっとく)
マウント設定したHDD側パーティション マウント先 ext3 defaults 数字 数字
の行を探し、その次ぐらいに
マウント先/移動先ディレクトリ/home /home none bind 0 0
マウント先/移動先ディレクトリ/opt /opt none bind 0 0
マウント先/移動先ディレクトリ/srv /srv none bind 0 0
マウント先/移動先ディレクトリ/usr /usr none bind 0 0
マウント先/移動先ディレクトリ/var /var none bind 0 0
マウント先/移動先ディレクトリ/tmp /tmp none bind 0 0
と追加。その後で移動作業開始
# mkdir マウント先/移動先ディレクトリ
# cd マウント先/移動先ディレクトリ
# mv /home .
# mv /opt .
# mv /srv .
# mv /usr .
# mv /var .
# mv /tmp .
# mkdir /home
# mkdir /opt
# mkdir /srv
# mkdir /usr
# mkdir /var
# mkdir /tmp
# chmod 1777 /tmp
# mount -a
…で移動完了。ちゃんと移動先がマウントできているかlsで確認。ついでに
# df -h
で、 / のパーティション使用量が物凄く減っていることが確認できるであろう。
心配なら、ここで再起動できるか確認しとくのもあり。
[5] GPartedのCD入れて再起動 → SSD側パーティション縮小
先ほどdfで得た使用量情報をもとに、新パーティションサイズを決める。
いろいろ詰め込まれてるSUSEやCentOSは1GB、その他は512MBってところ。
Gpartedでは使用量が多めに表示されるので、dfで512MB以内と表示されてても
Gpartedでは512MB越えてたりする。そゆときは、一度可能な限り縮小してやると
再配置がなされて使用量表示も減るので、もう1回の縮小で512MB以内に収まる。
ここで1種インストール完了。
ついでに次のインストール先パーティションを用意して[2]に戻る。
・Ubuntuでハマタ件
FedoraのシェルからmountしてGRUB2再インストールで解決…と思ったが、
旧grubと同様にはいかない模様。chrootさえ通用しない。
そんなわけで、FedoraのGRUBから[C]押して手動で。
> root (hd0,6)
> kernel /boot/vml{[TAB]押してファイル名補完} root=/dev/sda7
> initrd /boot/ini{[TAB]押してファイル名補完}
> boot
待つこと暫し。
ALERT! /dev/sda7 does not exist. Dropping to a shell!
…ありゃ?
(initramfs)でもlsは使えるので、ls /dev/sd*で調べたら/dev/sdb7が正しいらしい。
そんなわけで、root=/dev/sdb7にしてリトラーイ
待つこと暫し。
ALERT! /dev/sdb7 does not exist. Dropping to a shell!
…んぁ?
今度は/dev/sda7が正しいらしいマテヨヲイ
もう一度root=/dev/sda7に戻したら三度目の正直で手動起動はできた。
なんじゃこりゃ。
(こんな問題のためにUUIDは存在する。てゆか、最初はUUIDだったのを
試行錯誤でいぢくってしまったのだ。後で直しとこ)
んで、Ubuntuのシェルより
$ sudo grub-install -f "(hd0,7)"
error: no such partition.
GRUB2って、確かパーティション番号+1要るんだよねぃ…
これは、旧GRUBに戻す方がよさげ。
もうね、ブートローダは枯れてるやつに限る。
ブートレコード壊れてもすぐ直せるし。
因みに、インストールしたてのUnbuntu10.10にはaptitude入ってなかったので
予め
$ sudo apt-get install aptitude
でインストールヨロシ
あと、update-grubで生成した/boot/grub/menu.lstは
環境に合わせて手直し要るので、そゆことで。
・最後になんかハマタ件
Linuxインストール完了後、余った部分をGPartedでWindows用に割り当てたのだが、
それが何故かWindowsで認識できない。で、Windows側でパーティションを
再割り当てしたところ、Linux論理パーティション6つのうち5つが勝手に削除されて
しまった模様。
そんなわけで、GPartedで編集したパーティションはWindows側でいぢらん方がよさげ。
…とまぁ、やけにカタストロフな状況なのではあるが、復旧不可能ではない。
GPartedにはTestDiskっちぅパーティション復元ツールが入っている。
ここでミスると余計に悪化するので超慎重に。
Deep Scanで復元候補が並ぶ。
パーティションサイズ変えたりとかで残骸多いですが、ラベルとサイズ見れば正解は解る。
1048576が512MBで、2097152が1GBである。
2進数的に切りのいい数字にしとくと、こゆとき便利。
左右キーで復元対象を選んでいく。
Pが基本パーティションで、Lが論理パーティション。
もし初期候補がゴミだった場合はDに変えて候補から外す。
なお、壊れたパーティションだけでなく全てのパーティションを指定しなければならない。
ここで選ばれないと、TestDisk実行前に生き残ってたやつでも消える。
Extd Partを2回押すと論理パーティション群の前後にフィットしてくれる。
1回だけだと拡張パーティションが広くとられて周囲の非論理パーティションが
巻き込まれてしまうことに注意。
復元できた…はず。
なんか表示怪しいけど、GPartedが修復を捕捉できてないだけだ、きっと。
で、再起動。
無事修復できた模様。
MBMのメニューも復活して、Windows+Linux6種全て起動できるようになった。
web,office程度ならどれでも使えるので、気分次第でおk
いろいろ試せるようにマルチブート環境を作ってみた。
しかも単なるマルチインストールではなく、SSD/HDD分業で。
SSD/HDDの分け方はオーソドックスにサイズが小さく読み出し頻度が高いものを
SSDに、その他雑多なやつをHDDに。手段と手順を間違わなければさほど
難しいことではないのだが、この方法を確立するまでかなり試行錯誤してたり。
…とゆことで、今回インストールするディストリビューションは6種。
全て64bit版で。
[1] Debian 5.0.7
通称でびぃ。
余計なことをしないのがモットーとかなんとか。
なので少々敷居は高いかもしんないけど、いろいろと融通は利く…はず。
[2] Fedora 14
通称ふぇでぃ。
Red Hatの人柱的な存在である。そのため進化は速いとか。
[3] Ubuntu 10.10
通称うぶんちゅ。
Debianベースだが、とっつきのよさが追求されており、
エンドユーザを意識した進化を続けている。
ただし、用意されたソフトにないことしようとするとハマりがち。
[4] openSUSE 11.3
通称すーじぇ。
天敵Microsoftの息がかかっているためオープンソーサーに畏れられているとかなんとか。
10.1時代に使っていたが、自動更新ツールがCPUリソースをガメてて重い
ことが発覚したのでグッバイした。案の定大ブーイングだったようで、
今では自動更新ツールを一新して格段に軽くなっている模様。
[5] Vine 5.1
通称ぶどー。
かつて日本語に強いと定評あったようだが、今では他のでも普通に使えるし。
それよか、他のディストリビューションがいろいろゴテゴテ詰め込み続けてきた
中で1CDを通してきたことが印象深い。
(注:Vine5.2だめぽ)
[6] CentOS 5.5
通称せんとくん。
サーバ向けとして最近評判のようだが、まだ一度も使ったことないので
よくわかんない。
で、最初にインストールするのはいろいろと融通利かないWindows。
問答無用でMBR書き換えてマルチブート環境を壊してくれる厄介者である。
でもまー、インストール作業自体特に問題はない。
てゆか、融通利かなくて妙なことすると調子悪くなるからやんないんだけど。
そんなわけで、SSDに30GB確保してブチ込む。
次はMBM。MBRも含め第1パーティション前の余った部分にチョチョイと書き込むだけ
なので専用のパーティションを用意する必要はない。
再起動するとMBMが起動、ここでWindowsのパーティション選んで起動できれば成功。
この後、Linux各種ディストリビューションを次々と。
どれも基本的に以下の手順で。
[1] GPartedのCD入れて再起動 → パーティショニング
5つ以上マルチブートするため、Linuxは論理パーティションに配置する必要がある。
そのためには、拡張パーティションを用意してその中に論理パーティションを作る。
こんな感じで細かい場所取りするには、OSインストーラ付属のやつより使い勝手いい。
インストール後の使用量を見ると10GBほどでも足りそうだが、インストール中に
多くのテンポラリを要するので、この段階でケチるとインストールは失敗する。
とりあえず30GBほど確保しておき、後で縮小する方針で。
あと、HDD側に論理パーティションで2GBのswapと80GBのext3を用意。
これは全ディストリビューションで共用する。
(因みに、6種インストール済の段階でext3側の使用量は16GBほど。後でいろいろ追加で増える予定。)
なお、インストール先パーティションは6種分いっぺんに用意するのではなく、
1つずつ用意してインストール後に縮小しつつ追加という方針で。
[2] LinuxのCD入れて再起動 → インストール
気をつけなければならないことがいくつか
・インストーラのパーティショニングは手動で
全ディストリビューションで自動設定が規定だったりするので要注意。
SSD側のパーティションは初期化する。
HDDの共用パーティションもマウント対象にしておく(こっちは初期化しないように)
・システム時間はUTCにするべからず。Windowsの時計がズレまっせ。
CentOSはUTCが規定なので注意。
・GRUBインストール先はLinuxをインストールしたパーティションに
MBRに書き込まないように。ミスってもすぐ修復できるけど。
それよか、関係ないパーティションに入れてしまうと後でわけわかんなくなるので
超注意。
また、HDD装置番号間違ってて起動できないケースあるので、
可能であれば再起動前に/boot/grub/menu.lstを確認
ついでに、シングルユーザモード起動用の項目がなかったら作っておくとよい。
通常起動用のやつコピペって single を追記するだけでよい。
あと、hiddenmenu封印したり、timeoutの秒数決めたりとか。
[3] インストールしたパーティションから再起動 → 起動確認&各種設定
とりあえず、Ubuntuはコケる。
GRUB2に起因する問題らすぃ
解決までの道程は長いので後述。
GRUBまでいかなかったら、GRUBのインストール先が間違ってる可能性大。
GPartedまたは他のインストール成功したやつ(ただし、Debian,Vine,CentOSは
ext4認識しないのであしからず)でインストールパーティションを適当にマウントして
# grub-install --root-directory=マウント先ディレクトリ インストールパーティション
で入れ直せる。
GRUBから先でコケてる場合、GRUBの設定が間違っている可能性大。
これも、GPartedまたは他のインストール成功したやつでインストール
パーティションを適当にマウント。マウント先ディレクトリ/boot/grub/menu.lst の
最後の方を確認。
title なんたらかんたら
root (hd0,4) ←ここの数字2つが合ってるか確認
kernel /boot/vmlinuz(中略) root=/dev/sda5 ←ここの文字,数字が合ってるか確認
initrd /boot/initrd(中略)
(hd?,?)形式と/dev/*形式の対応の半分は、同ディレクトリのdevice.mapで解る。
もう半分、最後の数字は前者+1=後者が成り立つ。
(因みにGRUB2だと前者=後者になる。ややこい)
あと、VineなんかだとGUIインストールでエラー出てCUIで代用されたり。
CUIでインストールすると再起動後もCUIになる。
GUIの方がよかったら /etc/inittab を編集。
id:3:initdefault:
の数字を5にするだけ。
[4] インストールしたパーティションからシングルユーザモードで再起動
ここでは、SSD→HDD側の移動を行う。
そのためには、余計なプロセスが動いていると失敗する。
念のため
# init 1
で余計なプロセスを黙らせる。
移動対象は /home /opt /srv /usr /var /tmp 根刮ぎで
最初にすべきことは、ログの確認
# ls -l /var/log
やたらと巨大なログファイルができてたので、移動作業でハマタことあり(Vine、ヲマエダ)
巨大なログファイルなんか要らないので、サイズ0のファイルで上書きしとく。
んで、 /etc/fstab を編集
(移動作業中、一時的にviとか使えなくなるので先にいぢっとく)
マウント設定したHDD側パーティション マウント先 ext3 defaults 数字 数字
の行を探し、その次ぐらいに
マウント先/移動先ディレクトリ/home /home none bind 0 0
マウント先/移動先ディレクトリ/opt /opt none bind 0 0
マウント先/移動先ディレクトリ/srv /srv none bind 0 0
マウント先/移動先ディレクトリ/usr /usr none bind 0 0
マウント先/移動先ディレクトリ/var /var none bind 0 0
マウント先/移動先ディレクトリ/tmp /tmp none bind 0 0
と追加。その後で移動作業開始
# mkdir マウント先/移動先ディレクトリ
# cd マウント先/移動先ディレクトリ
# mv /home .
# mv /opt .
# mv /srv .
# mv /usr .
# mv /var .
# mv /tmp .
# mkdir /home
# mkdir /opt
# mkdir /srv
# mkdir /usr
# mkdir /var
# mkdir /tmp
# chmod 1777 /tmp
# mount -a
…で移動完了。ちゃんと移動先がマウントできているかlsで確認。ついでに
# df -h
で、 / のパーティション使用量が物凄く減っていることが確認できるであろう。
心配なら、ここで再起動できるか確認しとくのもあり。
[5] GPartedのCD入れて再起動 → SSD側パーティション縮小
先ほどdfで得た使用量情報をもとに、新パーティションサイズを決める。
いろいろ詰め込まれてるSUSEやCentOSは1GB、その他は512MBってところ。
Gpartedでは使用量が多めに表示されるので、dfで512MB以内と表示されてても
Gpartedでは512MB越えてたりする。そゆときは、一度可能な限り縮小してやると
再配置がなされて使用量表示も減るので、もう1回の縮小で512MB以内に収まる。
ここで1種インストール完了。
ついでに次のインストール先パーティションを用意して[2]に戻る。
・Ubuntuでハマタ件
FedoraのシェルからmountしてGRUB2再インストールで解決…と思ったが、
旧grubと同様にはいかない模様。chrootさえ通用しない。
そんなわけで、FedoraのGRUBから[C]押して手動で。
> root (hd0,6)
> kernel /boot/vml{[TAB]押してファイル名補完} root=/dev/sda7
> initrd /boot/ini{[TAB]押してファイル名補完}
> boot
待つこと暫し。
ALERT! /dev/sda7 does not exist. Dropping to a shell!
…ありゃ?
(initramfs)でもlsは使えるので、ls /dev/sd*で調べたら/dev/sdb7が正しいらしい。
そんなわけで、root=/dev/sdb7にしてリトラーイ
待つこと暫し。
ALERT! /dev/sdb7 does not exist. Dropping to a shell!
…んぁ?
今度は/dev/sda7が正しいらしいマテヨヲイ
もう一度root=/dev/sda7に戻したら三度目の正直で手動起動はできた。
なんじゃこりゃ。
(こんな問題のためにUUIDは存在する。てゆか、最初はUUIDだったのを
試行錯誤でいぢくってしまったのだ。後で直しとこ)
んで、Ubuntuのシェルより
$ sudo grub-install -f "(hd0,7)"
error: no such partition.
GRUB2って、確かパーティション番号+1要るんだよねぃ…
これは、旧GRUBに戻す方がよさげ。
もうね、ブートローダは枯れてるやつに限る。
ブートレコード壊れてもすぐ直せるし。
因みに、インストールしたてのUnbuntu10.10にはaptitude入ってなかったので
予め
$ sudo apt-get install aptitude
でインストールヨロシ
あと、update-grubで生成した/boot/grub/menu.lstは
環境に合わせて手直し要るので、そゆことで。
・最後になんかハマタ件
Linuxインストール完了後、余った部分をGPartedでWindows用に割り当てたのだが、
それが何故かWindowsで認識できない。で、Windows側でパーティションを
再割り当てしたところ、Linux論理パーティション6つのうち5つが勝手に削除されて
しまった模様。
そんなわけで、GPartedで編集したパーティションはWindows側でいぢらん方がよさげ。
…とまぁ、やけにカタストロフな状況なのではあるが、復旧不可能ではない。
GPartedにはTestDiskっちぅパーティション復元ツールが入っている。
ここでミスると余計に悪化するので超慎重に。
Deep Scanで復元候補が並ぶ。
パーティションサイズ変えたりとかで残骸多いですが、ラベルとサイズ見れば正解は解る。
1048576が512MBで、2097152が1GBである。
2進数的に切りのいい数字にしとくと、こゆとき便利。
左右キーで復元対象を選んでいく。
Pが基本パーティションで、Lが論理パーティション。
もし初期候補がゴミだった場合はDに変えて候補から外す。
なお、壊れたパーティションだけでなく全てのパーティションを指定しなければならない。
ここで選ばれないと、TestDisk実行前に生き残ってたやつでも消える。
Extd Partを2回押すと論理パーティション群の前後にフィットしてくれる。
1回だけだと拡張パーティションが広くとられて周囲の非論理パーティションが
巻き込まれてしまうことに注意。
復元できた…はず。
なんか表示怪しいけど、GPartedが修復を捕捉できてないだけだ、きっと。
で、再起動。
無事修復できた模様。
MBMのメニューも復活して、Windows+Linux6種全て起動できるようになった。
web,office程度ならどれでも使えるので、気分次第でおk
by denullpo
| 2011-02-06 16:01
| こっち関係