/dev/ ディレクトリ内で「ブロック」スペシャルファイルを使います。Debian Squeeze 以降、ハードドライブの命名規則は Linux カーネルによって統一化されました。現在、すべてのハードドライブ (IDE/PATA、SATA、SCSI、USB、IEEE 1394) は /dev/sd* と表されます。
/dev/sda1 は 1 台目のディスクの最初のパーティションで、/dev/sdb3 は 2 台目のディスクの 3 番目のパーティションです。
/dev/sda5、2 番目は /dev/sda6 などのように割り振られるでしょう。
udev は /dev/sd* に加えて、固有名のシンボリックリンクを作成します。曖昧でない方法でハードドライブを識別したい場合にはこのシンボリックリンクを使うことが可能です。これらのシンボリックリンクは /dev/disk/by-id に保存されています。たとえば 2 台の物理ディスクを備えるマシンでは以下のようなシンボリックリンクが見つかります。
mirexpress:/dev/disk/by-id#ls -l合計 0 lrwxrwxrwx 1 root root 9 7月 23 08:58 ata-STM3500418AS_9VM3L3KP -> ../../sda lrwxrwxrwx 1 root root 10 7月 23 08:58 ata-STM3500418AS_9VM3L3KP-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 7月 23 08:58 ata-STM3500418AS_9VM3L3KP-part2 -> ../../sda2 [...] lrwxrwxrwx 1 root root 9 7月 23 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697 -> ../../sdb lrwxrwxrwx 1 root root 10 7月 23 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 10 7月 23 08:58 ata-WDC_WD5001AALS-00L3B2_WD-WCAT00241697-part2 -> ../../sdb2 [...] lrwxrwxrwx 1 root root 9 7月 23 08:58 scsi-SATA_STM3500418AS_9VM3L3KP -> ../../sda lrwxrwxrwx 1 root root 10 7月 23 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part1 -> ../../sda1 lrwxrwxrwx 1 root root 10 7月 23 08:58 scsi-SATA_STM3500418AS_9VM3L3KP-part2 -> ../../sda2 [...] lrwxrwxrwx 1 root root 9 7月 23 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697 -> ../../sdb lrwxrwxrwx 1 root root 10 7月 23 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part1 -> ../../sdb1 lrwxrwxrwx 1 root root 10 7月 23 08:58 scsi-SATA_WDC_WD5001AALS-_WD-WCAT00241697-part2 -> ../../sdb2 [...] lrwxrwxrwx 1 root root 9 7月 23 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0 -> ../../sdc lrwxrwxrwx 1 root root 10 7月 23 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part1 -> ../../sdc1 lrwxrwxrwx 1 root root 10 7月 23 16:48 usb-LaCie_iamaKey_3ed00e26ccc11a-0:0-part2 -> ../../sdc2 [...] lrwxrwxrwx 1 root root 9 7月 23 08:58 wwn-0x5000c50015c4842f -> ../../sda lrwxrwxrwx 1 root root 10 7月 23 08:58 wwn-0x5000c50015c4842f-part1 -> ../../sda1 [...] mirexpress:/dev/disk/by-id#
lilo コマンドを使わなければいけません。このルールを忘れて、古いカーネルを削除したり、置き換えた新しいカーネルを古いカーネルがあった場所と同じディスクの場所に置かなかったりすると、システムが起動できないと表示されます。
/etc/lilo.conf です。標準的な設定を行う単純なファイルは以下の例のように書けます。
例 8.4 LILO の設定ファイル
# このディスクに LILO をインストールします。 # ここではパーティションではなくディスクを指定してください。 # LILO は MBR にインストールされます。 boot=/dev/sda # Debian がインストールされているパーティション root=/dev/sda2 # デフォルトで起動させるアイテム default=Linux # 最新のカーネルイメージ image=/vmlinuz label=Linux initrd=/initrd.img read-only # 古いカーネル (最新のカーネルが起動しなかった際に使います) image=/vmlinuz.old label=LinuxOLD initrd=/initrd.img.old read-only optional # Linux と Windows のデュアルブート用 other=/dev/sda1 label=Windows
grub-install /dev/sda を実行してください。
/boot/grub/grub.cfg に保存されていますが、このファイルは (Debian の場合) 別のファイルから生成されます。/boot/grub/grub.cfg を直接変更しないでください。なぜなら、update-grub が実行されたら (さまざまなパッケージの更新時に実行されることがあります) そのようなその場限りの変更は失われるからです。/boot/grub/grub.cfg ファイルに対して最も一般的な変更を加える (たとえば、カーネルに渡すコマンドラインパラメータを追加したり、メニューの表示される時間を変える) には /etc/default/grub に含まれる変数を使います。メニューにエントリを追加するには /boot/grub/custom.cfg ファイルを作成するか、/etc/grub.d/40_custom ファイルを変更してください。より複雑な設定をするには /etc/grub.d にある他のファイルを変更するか、このディレクトリにファイルを追加してください。/etc/grub.d ディレクトリに含まれるスクリプトは設定スニペットを返すスクリプトであり、場合によっては外部プログラムを使用するかもしれません。これらのスクリプトは起動したいカーネルのリストを更新するためのものです。すなわち 10_linux はインストール済み Linux カーネルをリストアップします。そして 20_linux_xen は Xen 仮想システムをリストアップし、30_os-prober は他のオペレーティングシステム (Windows、OS X、Hurd) をリストアップします。
ybin プログラムがインストールする yaboot と設定ファイルも含まれています。設定ファイル /etc/yaboot.conf (このファイルは bootstrap パーティションにコピーされ、yaboot がディスク上からカーネルのパーティションを見つける方法を指定するファイルです) を変更したら、ybin コマンドをもう一度実行する必要があります。
例 8.5 Yaboot の設定ファイル
# bootstrap パーティション
boot=/dev/sda2
# ディスク
device=hd:
# Linux パーティション
partition=3
root=/dev/sda3
# 3 秒間何もしなければ起動します
# (timeout は 10 倍の値を設定してください)
timeout=30
install=/usr/lib/yaboot/yaboot
magicboot=/usr/lib/yaboot/ofboot
enablecdboot
# 最近インストールされたカーネル
image=/vmlinux
label=linux
initrd=/initrd.img
read-only
# 古いカーネル
image=/vmlinux.old
label=old
initrd=/initrd.img.old
read-only
# Linux と Mac OSX のデュアルブート用
macosx=/dev/sda5
# bsd=/dev/sdaX および macos=/dev/sdaX
# の可能性もあります