Gentooインストールのヒントとトリック

From Gentoo Wiki
Jump to: navigation, search
This page is a translated version of the page Gentoo installation tips and tricks and the translation is 100% complete.

Other languages:
English • ‎español • ‎italiano • ‎日本語 • ‎한국어 • ‎português do Brasil • ‎русский • ‎中文(中国大陆)‎

Gentooはフレキシブル、かつさまざまなインストール方法をサポートしています。それら個々のインストール手順にすべてのヒントとトリックを記載することはほぼ不可能です。そのため本ドキュメントではリファレンスを目的として、これまでに投稿されたすべてのヒントとトリックを扱うことに挑戦します。


イントロダクション

はじめに

このドキュメントはGentoo/x86のインストールに関して、さまざまなヒントとトリックを含んでいます。それらの多くはこれまで十分に議論されてきたものであり、インストール手順を補足できますが、元の手順を置き換えるものではありません。

高度なインストール方法

ソフトウェアRAID

注意
もし、あなたがソフトウェアRAIDそのものに詳しくない場合、Software-RAID-HOWTOを読んでください。
注意
より詳細な手順については、Software Raid and LVM2 x86 Quick Install Guideを参照してください。

インストールCDからブートする時は適切なRAIDモジュールをロードしてください。例えば、RAID-1の場合は以下を実行します。

root #modprobe raid1

ここで、対象となるディスクのパーティションタイプが83 (Linux native)ではなく、fd (Linux raid autodetect)となっていることを確認してください。パーティションタイプはfdisktコマンドで変更できます。

また、RAIDアレイを構成する前に、メタデバイスノードを作成する必要があります。

root #mknod /dev/md1 b 9 1
root #mknod /dev/md2 b 9 2
root #mknod /dev/md3 b 9 3

パーティション作成後、RAID managementのためのより進んだツールであるmdadmコマンドで/etc/mdadm.confファイルを作成します(もちろん、インストールCDでブートした場合でも作成します)。例えば、/dev/sda/dev/sdbの上にRAID-1でミラーされたboot、swap、rootパーティションを作成する場合は、以下のようにします。

root #mdadm --create --verbose /dev/md1 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda1 /dev/sdb1
root #mdadm --create --verbose /dev/md2 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda2 /dev/sdb2
root #mdadm --create --verbose /dev/md3 --level=1 --raid-devices=2 --metadata=0.90 /dev/sda3 /dev/sdb3
重要
ブートパーティションに対しては、RAID-0やRAID-5のようなストライピングをするRAIDは使用できません。また、--metadata=0.90はこれらクリティカルなファイルシステムのみに必要です。他のファイルシステムに対しては、より新しいメタデータフォーマットを使用できます。

LinuxのソフトウェアRAIDドライバーは、まずメタデバイスを作成します。この進行状況は/proc/mdstatに見ることができます。まずはメタデバイスが完全に生成されるまで待ちましょう。

root #mdadm --detail --scan > /etc/mdadm.conf

ここから先は、bootパーティションに/dev/md1、swapパーティションに/dev/md2、rootパーティションに/dev/md3を使います。

chrootを実行する直前に、/etc/mdadm.conf全体を/mnt/gentoo/etcにコピーすることを忘れないでください。

カーネルを再コンフィグレーションするときは、適切なRAIDサポートをモジュールではなく、カーネルに"組み込む"必要があります。

追加のツールをインストールする場合、mdadmもemergeしましょう。ここで気をつけなければならないのは、mdadmはすべてのインストールCDで利用可能とは限らないことです。ネットワークを使用しないインストールでは、ソフトウェアRAID上にGentooをインストールできないかもしれません。

ブートローダーの設定時、もしミラーリングを使っている場合は、ミラーリング対象のすべてのディスクのMBRにインストールしなければなりません。

カーネル2.4を使用したATA RAID

まず、インストールCDをdoataraidオプション付きでブートしてください。ブート後、/dev/ataraidディレクトリを確認してください。ATA RAIDで使用可能なハードディスクそれぞれに対して、disc*ディレクトリが存在するはずです。ここでディスク全体はdiscと表示され、パーティションはpart*と表示されます。

Gentooをインストールしたい/dev/ataraid/disc*/*デバイスファイルをメモしておいてください。後でインストール例の/dev/sdaを、メモしたパスで置き換えなければならないためです。

chrootする前に、/devを新しい環境にbindオプション付きでマウントしなければなりません。

root #mount --rbind /dev /mnt/gentoo/dev

カーネル設定時、ATA RAIDチップセットといくつかのオプションをサポートする必要があります。ポピュラーなATA RAIDシステムは、Promise FastTrack built-in RAIDで、この場合はPromise FastTrack Optionsを組み込む必要があります。

GRUBを設定する時は、まずGRUBのブートディスクを生成しなければなりません。これはあなたが想像するほど難しい作業ではありません。まずは普段どおりGRUBをインストールしますが、GRUBを実際にMBRに書き込むときは以下の手順を実行します。

root #cd /boot/grub
root #dd if=stage1 of=/dev/fd0 bs=512 count=1
root #dd if=stage2 of=/dev/fd0 bs=512 seek=1

grub.confの設定も必要です。これは通常のインストール手順と変わりありません。ただ、ATA RAIDデバイスをroot=で確実に指定してください。

インストール完了後、GRUBのブートディスクからブートすると、GRUBのプロンプトが表示されるでしょう。ATA RAIDデバイスからブートするように設定します。

grub>root (hd0,x)
grub>setup (hd0)
grub>quit

ここでリブートします。(同時にGRUBのブートフロッピーは取り出します)

LILOの場合は、インストール手順に従えば安全にインストールできます。

インストールCDのカーネルを使用する

もし、カーネルをあなた自身でコンパイルしたくない場合、インストールCDのカーネルをあなたのシステムにコピーすることができます。インストール手順のカーネルをコンパイルする箇所で、別のターミナル(AltF2を同時押し)に切り替えて、インストールの最初に指定したrootのパスワードでログインしてください。

カーネルとモジュールをあなたのGentooにコピーしてください。

注意
${KN}はカーネルの名前で、通常は'gentoo'や'smp'のような名前になります。
root #cp /mnt/cdrom/isolinux/${KN} /mnt/cdrom/isolinux/${KN}.igz /mnt/gentoo/boot
root #mkdir -p /mnt/gentoo/lib/modules
root #cp -Rp /lib/modules/`uname -r` /mnt/gentoo/lib/modules

Gentooのブートアップ中に(インストールCDから)ロードされたすべてのモジュールを新しい環境側で設定します。chrootした環境で以下のコマンドを実行してください。

root #printf "modules\"" >> /etc/conf.d/modules
root #cat /proc/modules | cut -d ' ' -f 1 >> /etc/conf.d/modules
root #printf "\"\n" >> /etc/conf.d/modules

/etc/conf.d/modulesの内容が適切に更新されたことを確認しましょう。

インストールを簡単に

ターミナルから離れる

多くの場合、時間がかかるコンパイル中はシステムから離れたいものです。しかし、特定のケースではこれは難しくなります。例えば周囲に知らない人がたくさんいる公衆の環境でインストールをする場合です。このようなケースでは、コンパイルはバックグラウンドで実行して、すべてのターミナルからログオフしたくなるでしょう。

これを実現するためのいくつかの手段があります。まず最初の方法はscreenを使うことです。インストールCDからブート後、rootパスワードを設定して、screenセッションを開始してください。

注意
すべてのインストールCDがscreenを提供しているわけではありません。その場合、この節に記載している別の方法を使ってください。
root #screen -S gentoo

一旦、screenセッションに入った後は、すべてのインストール作業をscreen上で行えます。ターミナルを離れたくなった時は、Ctrlaを同時に押した後、dを押してください。これでscreenセッションからターミナルを"detach"するため、安全にログアウトできます。

作業を再開する場合、再度rootでログインして、バックグラウンドで動作しているscreenセッションに"attach"してください。

root #screen -x gentoo

仮にscreenが使用できなくても、別の方法でターミナルから離れることができます。通常のインストール手順の中で長時間のコンパイルが始まる場合(例えば./scripts/bootstrap.shの実行時)、nohupを使えばあなたがログアウトしてもコンパイルを継続できます。このとき、忘れずにコンパイルコマンドの末尾に"&"を付けてください。そうしないとコンパイルコマンドはバックグラウンドで実行されません!ここで、あなたが現在どのディレクトリにいるのか(これはpwdコマンドでわかります)を覚えておいてください。これは後の手順で必要です。

root #pwd
/usr/portage
root #nohup ./scripts/bootstrap.sh &

これでchroot環境とインストールCDのセッションから出ることができます(exit)。コンパイルはバックグラウンドで実行されます。

コンパイル結果を確認する場合は、(インストールCDで)rootとしてログインし、chroot環境に戻ります。そしてあなたが最後にいたディレクトリに戻ってください。

root #chroot /mnt/gentoo /bin/bash
root #env-update && source /etc/profile
root #cd /usr/portage

ここで、そのディレクトリに作られているであろうnohup.outファイルをlessコマンドで見てください。コンパイル結果がnohup.outファイルに追加されているでしょう。そのため、もしコンパイルの進捗を随時確認したい場合は、less nohup.outを実行後、Fを入力してログの追加を随時反映させましょう。

もし、変更をフォローすることに疲れた場合、CtrlCを押した後に、qを押してください。この場合、コンパイルプロセスは終了せず、単にlessが終了するだけです。

エラー/問題の解決

ディスクの詳細テスト

ディスク全体を通して整合性(不良セクタ等)をチェックしたい場合は、mke2fsでext2またはext3のファイルシステムを作成時、-c(小文字のc)オプションを付与してください。これでディスク全体のフォーマットとリードテストを行い、かつ不良ブロックについてはその旨マークします。もしあなたが本当にパラノイドであるならば、-c -cとすることでディスク全体に対してリード/ライトテストを実行できます。

root #mke2fs -j -c /dev/sda3

インストールに失敗したときの復旧方法

なんらかの理由でGentooのインストールに失敗した場合でも、全てのインストール作業を最初からやり直す必要はありません。あなたがミスをしたと思われる時点まで(もしくは手順に不備があると考える時点まで)安全に戻ることができ、その時点から違うアプローチでインストールを続けることができます。

まず最初に、chrootしたGentoo Linux環境から抜け出す必要があります。しかしすべての手順を再度実行する必要はありません。例えばパーティションが既に作成されているのであれば、パーティション作成はスキップすることができます。その場合、すぐにそのパーティションを/mnt/gentooにマウントできます。また、ステージの展開やmake.confの修正もスキップできるでしょう。せっかく作ったファイルを上書きしたくありませんよね。

一旦、Gentoo Linux環境にchrootした後は、異なるアプローチを取りたいポイントまですぐに進みましょう。例えばそれ自身が間違いでない限り、通常の手順でブートストラップのような処理が求められていたとしても、それを再度実行する必要はありません。

もしあなたが間違ってgrub.confを設定したと考えているのであれば、すぐにエディタを起動して/boot/grub/grub.confを更新しましょう。

起こっている問題に対して一旦異なるアプローチを取った場合、いくつの後続ステップの再実行を検討しなければなりません。具体的には、後続ステップがあなたの変更に依存していれば、それらをやり直す必要があります。

例えば、

  • make.confの変数を変更した場合、この変数に依存している全てのコンパイルを再実行しなければなりません。
  • /boot/grub/grub.confを変更した場合、chroot環境から出てリブートします。理由はgrub.confに依存する後続のステップを正常に実行するためです。
  • カーネルをリコンパイルした場合、ブートローダーがそのカーネルイメージを正しくブートできるようにしなければなりません(/bootをマウントしていることを再確認しましょう)。そしてchroot環境を出て、リブートしてください。
  • /etc/fstabを変更した場合、chroot環境を出て、リブートしなければなりません。
ほとんどのリカバリ操作ですぐにリブートが必要になることがわかるでしょう。そのまま後続のインストールステップをやり直さなければならないのは特定のケースだけです。
This article is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Xavier Neys, nightmorph
They are listed here as the Wiki history does not allow for any external attribution. If you edit the Wiki article, please do not add yourself here; your contributions are recorded on the history page.