「Syslinux」の版間の差分
511行目: | 511行目: | ||
boot: ../vmlinuz-linux root=/dev/sda2 rw initrd=../initramfs-linux.img |
boot: ../vmlinuz-linux root=/dev/sda2 rw initrd=../initramfs-linux.img |
||
− | [[ |
+ | [[RAM ディスク|ramfs]] の {{ic|boot:}} にアクセスできないと、一時的にカーネルを起動することができません。 |
:1. root パーティションをマウントするために、一時ディレクトリを作成して下さい (存在しない場合): |
:1. root パーティションをマウントするために、一時ディレクトリを作成して下さい (存在しない場合): |
||
# mkdir -p /new_root |
# mkdir -p /new_root |
2015年1月14日 (水) 14:32時点における版
関連記事
Syslinux はハードドライブや CD、PXE を介したネットワークなどから起動できるブートローダの集合です。FAT, ext2, ext3, ext4, Btrfs ファイルシステムをサポートしています。
BIOS 環境
Syslinux ブートプロセス
- MBR をロード。起動時、BIOS はディスクの一番最初にある440バイトの MBR ブートコードをロードします (
/usr/lib/syslinux/bios/mbr.bin
もしくは/usr/lib/syslinux/bios/gptmbr.bin
)。 - アクティブパーティションを検索。MBR はアクティブになっているパーティションを探します (ブートフラグ)。ここでは
/boot
パーティションを例として使います。 - ボリュームブートレコードを実行。パーティションが見つかったら、パーティションのボリュームブートレコード (VBR) が実行されます。Syslinux では、VBR ブートコードは
extlinux --install
によって作られる/boot/syslinux/ldlinux.sys
の最初のセクタになります。ldlinux.sys
とldlinux.c32
は違うので注意してください。 /boot/syslinux/ldlinux.sys
を実行。VBR が残りの/boot/syslinux/ldlinux.sys
を起動します。/boot/syslinux/ldlinux.sys
のセクタ位置が変更されている場合、Syslinux は起動しません。/boot/syslinux/ldlinux.c32
をロード。/boot/syslinux/ldlinux.sys
は syslinux の残りのコアを含んでいる/boot/syslinux/ldlinux.c32
(コアモジュール) をロードします (ファイルサイズの制限のためldlinux.sys
に入らないもの)。ldlinux.c32
は全ての syslinux/extlinux で必須でありパーティションにインストールされているldlinux.sys
とバージョンが一致している必要があります。そうないと Syslinux が起動しません。詳しくは http://bugzilla.syslinux.org/show_bug.cgi?id=7 を見て下さい。- 設定ファイルを検索・ロード。Syslinux が完全にロードされると、設定ファイル
/boot/syslinux/syslinux.cfg
(もしくは/boot/syslinux/extlinux.conf
) が検索されます。設定ファイルが見つかったら、ロードを行います。設定ファイルが存在しない場合、Syslinux のboot:
プロンプトが表示されます。
インストール
# pacman -S syslinux
自動インストール
syslinux-install_update
スクリプトは Syslinux をインストールし、*.c32
モジュールを /boot/syslinux
にコピーし、ブートフラグを設定して MBR にブートコードをインストールします。ソフトウェア RAID の MBR や GPT ディスクを扱うことができます。
- 1. boot パーティションを分割している時はそのパーティションがマウントされているか確認してください。
lsblk
で確認できます。/boot
マウントポイントがないときは、先に進む前にマウントしてください。
- 2.
syslinux-install_update
をフラグを付けて実行してください:-i
(ファイルをインストール),-a
(boot フラグでパーティションを active にする),-m
(MBR ブートコードをインストール):
# syslinux-install_update -i -a -m
- 3. #設定 に従って
/boot/syslinux/syslinux.cfg
を作成・編集してください。
手動インストール
Syslinux をインストールする boot パーティションには FAT, ext2, ext3, ext4, Btrfs のいずれかのファイルシステムを含んでなくてはなりません。マウントしたディレクトリ (/dev/sdXY
デバイスではありません) にインストールしてください。ファイルシステムの root ディレクトリにインストールする必要はありません (例: /boot
にマウント。したデバイス /dev/sda1
)。Syslinux を syslinux
ディレクトリにインストールすることができます:
# mkdir /boot/syslinux # cp -r /usr/lib/syslinux/bios/*.c32 /boot/syslinux/ ## copy ALL the *.c32 files from /usr/lib/syslinux/bios/, DO NOT SYMLINK # extlinux --install /boot/syslinux
この後、次のセクションに書かれているように Syslinux のブートコード (mbr.bin
もしくは gptmbr.bin
) をディスクの Master Boot Record の440バイトのブートコード領域 (MBR や msdos パーティションテーブルとは違います) にインストールしてください。
MBR パーティションテーブル
次にパーティションテーブルで boot パーティションを active にする必要があります。これができるアプリケーションは fdisk
, cfdisk
, sfdisk
, parted/gparted
("boot" フラグ) などです。以下のようにしてください:
# fdisk -l /dev/sda
[...] Device Boot Start End Blocks Id System /dev/sda1 * 2048 104447 51200 83 Linux /dev/sda2 104448 625142447 312519000 83 Linux
MBR をインストールしてください:
# dd bs=440 count=1 conv=notrunc if=/usr/lib/syslinux/bios/mbr.bin of=/dev/sda
Syslinux はもうひとつ MBR を提供しています: altmbr.bin
。この MBR はブータブルパーティションのスキャンをしません。代わりに、MBR の最終バイトを使ってどのパーティションを起動するか示します。以下は altmbr.bin
を所定の位置にコピーする方法の例です:
# printf '\x5' | cat /usr/lib/syslinux/bios/altmbr.bin - | \ dd bs=440 count=1 iflag=fullblock conv=notrunc of=/dev/sda
この場合、シングルバイトの値5が altmbr.bin
の内容に加えられ結果的に440バイトがデバイス sda
の MBR に書き込まれます。Syslinux はディスクの最初の論理パーティション (/dev/sda5
) にインストールされます。
GUID パーティションテーブル
/boot
パーティションでビット2の属性 ("legacy_boot" 属性) を設定する必要があります:
# sgdisk /dev/sda --attributes=1:set:2
このコマンドによってパーティション1の legacy BIOS bootable 属性が切り替わります。確認するには:
# sgdisk /dev/sda --attributes=1:show
1:2:1 (legacy BIOS bootable)
MBR をインストールしてください:
# dd bs=440 conv=notrunc count=1 if=/usr/lib/syslinux/bios/gptmbr.bin of=/dev/sda
このコマンドが動かない時は次のコマンドを試して下さい:
# syslinux-install_update -i -m
UEFI 環境
UEFI Syslinux の制限
- UEFI Secure Boot のために UEFI Syslinux アプリケーション
syslinux.efi
を (sbsigntool の)sbsign
で署名することはできません。バグレポート - http://bugzilla.syslinux.org/show_bug.cgi?id=8
- UEFI Syslinux のメニューで TAB を使ってカーネルパラメータを編集すると表示がおかしくなります (text on top of one-another)。バグレポート - http://bugzilla.syslinux.org/show_bug.cgi?id=9
- UEFI Syslinux は
UEFI Shell
やWindows Boot Manager
など他の EFI アプリケーションのチェインロードをサポートしていません。バグレポート - http://bugzilla.syslinux.org/show_bug.cgi?id=17
- QEMU/OVMF や VirtualBox、VMwareUEFI などの仮想環境や DUET などの UEFI エミュレーション環境では Syslinux は起動しません。バグレポート - http://bugzilla.syslinux.org/show_bug.cgi?id=21 and http://bugzilla.syslinux.org/show_bug.cgi?id=23
- UEFI では Memdisk は使えません。バグレポート - http://bugzilla.syslinux.org/show_bug.cgi?id=30
インストール
- syslinux パッケージをインストールして EFI System Partition (ESP) で syslinux をセットアップしてください:
# pacman -S syslinux
- syslinux ファイルを ESP にコピーしてください:
# mkdir -p $esp/EFI/syslinux # cp -r /usr/lib/syslinux/efi64/* $esp/EFI/syslinux
- efibootmgr を使って Syslinux のブートエントリを設定してください:
# mount -t efivarfs efivarfs /sys/firmware/efi/efivars # efibootmgr -c -d /dev/sdX -p Y -l /EFI/syslinux/syslinux.efi -L "Syslinux"
- #設定 に従って
$esp/EFI/syslinux/syslinux.cfg
を作成・編集してください。
設定
Syslinux の設定ファイル, syslinux.cfg
は Syslinux をインストールしたディレクトリと同じところに作成する必要があります。このページでは、BIOS 環境は /boot/syslinux/
、UEFI 環境は $esp/EFI/syslinux/
になります。
ブートローダは syslinux.cfg
(推奨) もしくは extlinux.conf
を探します。
サンプル
基本設定
このシンプルな設定ファイルは boot:
プロンプトを表示して5秒後に自動でブートします。
設定:
/boot/syslinux/syslinux.cfg
PROMPT 1 TIMEOUT 50 DEFAULT arch LABEL arch LINUX ../vmlinuz-linux APPEND root=/dev/sda2 rw INITRD ../initramfs-linux.img LABEL archfallback LINUX ../vmlinuz-linux APPEND root=/dev/sda2 rw INITRD ../initramfs-linux-fallback.img
プロンプトを表示しないで直接ブートしたい場合、PROMPT
を 0
に設定してください。
デバイス名の代わりに UUID を使って永続的なデバイスの命名をしたい場合は、APPEND
行を変更して root パーティションの UUID
と同じにしてください:
APPEND root=UUID=978e3e81-8048-4ae1-8a06-aa727458e8ff rw
暗号化 LUKS を使う場合、APPEND
行を暗号化されたボリュームを使うように変更してください:
APPEND root=/dev/mapper/group-name cryptdevice=/dev/sda2:name rw
mdadm を使ってソフトウェア RAID を利用している場合、APPEND
行を変更して RAID アレイを記述してください。例えば3つの RAID1 アレイがあってどれかひとつを root に設定する場合:
APPEND root=/dev/md1 rw md=0,/dev/sda2,/dev/sdb2 md=1,/dev/sda3,/dev/sdb3 md=2,/dev/sda4,/dev/sdb4
上のカーネルデバイスノードを使ったソフトウェア raid パーティションからの起動が失敗する場合、もっと信頼性のある方法としてパーティションラベルを使う方法があります:
APPEND root=LABEL=THEROOTPARTITIONLABEL rw
テキストブートメニュー
Syslinux ではブートメニューを使うことも可能です。ブートメニューを使うには、menu
モジュールを Syslinux ディレクトリにコピーしてください:
# cp /usr/lib/syslinux/bios/menu.c32 /boot/syslinux/
設定:
/boot/syslinux/syslinux.cfg
UI menu.c32 PROMPT 0 MENU TITLE Boot Menu TIMEOUT 50 DEFAULT arch LABEL arch MENU LABEL Arch Linux LINUX ../vmlinuz-linux APPEND root=/dev/sda2 rw INITRD ../initramfs-linux.img LABEL archfallback MENU LABEL Arch Linux Fallback LINUX ../vmlinuz-linux APPEND root=/dev/sda2 rw INITRD ../initramfs-linux-fallback.img
メニューシステムの詳細は Syslinux のドキュメント を見て下さい。
グラフィカルブートメニュー
Syslinux ではグラフィカルなブートメニューを使うことも可能です。グラフィカルなメニューを使うには、vesamenu
COM32 モジュールを Syslinux フォルダにコピーしてください:
# cp /usr/lib/syslinux/bios/vesamenu.c32 /boot/syslinux/
この設定は Arch Install CD と同じメニューデザインを使っています。背景ファイルもここになります。この設定を使ってあなたのシステムをブートできるようにするために、正しいパーティションが使われているか確認してください。
設定:
/boot/syslinux/syslinux.cfg
UI vesamenu.c32 DEFAULT arch PROMPT 0 MENU TITLE Boot Menu MENU BACKGROUND splash.png TIMEOUT 50 MENU WIDTH 78 MENU MARGIN 4 MENU ROWS 5 MENU VSHIFT 10 MENU TIMEOUTROW 13 MENU TABMSGROW 11 MENU CMDLINEROW 11 MENU HELPMSGROW 16 MENU HELPMSGENDROW 29 # Refer to http://www.syslinux.org/wiki/index.php/Comboot/menu.c32 MENU COLOR border 30;44 #40ffffff #a0000000 std MENU COLOR title 1;36;44 #9033ccff #a0000000 std MENU COLOR sel 7;37;40 #e0ffffff #20ffffff all MENU COLOR unsel 37;44 #50ffffff #a0000000 std MENU COLOR help 37;40 #c0ffffff #a0000000 std MENU COLOR timeout_msg 37;40 #80ffffff #00000000 std MENU COLOR timeout 1;37;40 #c0ffffff #00000000 std MENU COLOR msg07 37;40 #90ffffff #a0000000 std MENU COLOR tabmsg 31;40 #30ffffff #00000000 std LABEL arch MENU LABEL Arch Linux LINUX ../vmlinuz-linux APPEND root=/dev/sda2 rw INITRD ../initramfs-linux.img LABEL archfallback MENU LABEL Arch Linux Fallback LINUX ../vmlinuz-linux APPEND root=/dev/sda2 rw INITRD ../initramfs-linux-fallback.img
Syslinux 3.84 から、vesamenu.c32
は MENU RESOLUTION $WIDTH $HEIGHT
ディレクティブをサポートしています。
これを使うには、1440x900 の解像度なら設定に MENU RESOLUTION 1440 900
を挿入してください。
背景画像も適切な解像度にする必要があります。そうしないと Syslinux はメニューをロードしません。
自動ブート
Syslinux のメニューを表示したくない場合は、syslinux.cfg
内の UI
コマンドを全てコメントアウトして DEFAULT
を設定してください。
チェインロード
他のオペレーティングシステム (Windows など) やブートローダをチェインロードしたい時は、chain.c32
モジュールを Syslinux ディレクトリにコピー(もしくはシンボリックリンクを作成)してください (詳しくは、前のセクションの説明を参照してください)。そして設定ファイルにセクションを作成してください:
/boot/syslinux/syslinux.cfg
... LABEL windows MENU LABEL Windows COM32 chain.c32 APPEND hd0 3 ...
hd0 3
は最初の BIOS ドライブの3つ目のパーティションです - ドライブは0から数えますが、パーティションは1からになります。
BIOS がどのドライブを"最初"と考えるのかわからない場合は、代わりに MBR identifier (GPT を使っている場合、ファイルシステムラベル) を使うことができます。MBR identifier を使うには、次のコマンドを実行してください:
# fdisk -l /dev/sdb
Disk /dev/sdb: 128.0 GB, 128035676160 bytes 255 heads, 63 sectors/track, 15566 cylinders, total 250069680 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xf00f1fd3 Device Boot Start End Blocks Id System /dev/sdb1 2048 4196351 2097152 7 HPFS/NTFS/exFAT /dev/sdb2 4196352 250066943 122935296 7 HPFS/NTFS/exFAT
/dev/sdb
をチェインロードしたいドライブに置き換えてください。Disk identifier には16進数が使われます: この場合 0xf00f1fd3
です。syslinux.cfg
の構文は:
/boot/syslinux/syslinux.cfg
... LABEL windows MENU LABEL Windows COM32 chain.c32 APPEND mbr:0xf00f1fd3 ...
チェインロードの詳細は Syslinux の wiki を参照してください。
同じパーティションに GRUB をインストールした場合は、以下でチェインロードすることが可能です:
/boot/syslinux/syslinux.cfg
... LABEL grub2 MENU LABEL Grub2 COM32 chain.c32 append file=../grub/boot.img ...
これは ISO イメージから起動するのに必要になるかもしれません。
他の Linux システムをチェインロードする
Windows など他のブートローダをチェインロードする場合、チェインするべきブートローダが明白に存在します。しかし Syslinux では、設定ファイルと同じパーティションにあるファイルしかロードすることができません。そのため、Linux の他バージョンを異なるパーティションに置いている (/boot
を使っていない) ときは、Extlinux を利用する必要がでてきます。基本的に、Extlinux はパーティションのスーパーブロックにインストールができ、Syslinux によってインストールされた MBR から異なるブートローダとして呼ばれます。Extlinux は Syslinux プロジェクトの一部であり syslinux パッケージに含まれています。
以下の手順は既に Syslinux がインストールされていることを前提にしています。また、/boot/syslinux
の Arch Linux 設定パスを使っていてチェインロード /
は /dev/sda3
にあると仮定しています。
起動した Linux (Syslinux が起動するように設定されたパーティション) から、他の root パーティションを適当なマウントポイントにマウントしてください。ここでは例として /mnt
を使います。また、2番目のオペレーティングシステムで /boot
パーティションを分割している場合、それもマウントする必要があります。ここでは /dev/sda2
がそのパーティションとします。
# mount /dev/sda3 /mnt # mount /dev/sda2 /mnt/boot (only necessary for separate /boot)
Extlinux をインストールして必要な *.c32
ファイルをコピーしてください:
# extlinux -i /mnt/boot/syslinux # cp /usr/lib/syslinux/bios/*.c32 /mnt/boot/syslinux
/mnt/boot/syslinux/syslinux.cfg
を作成してください。例:
/boot/syslinux/syslinux.cfg on /dev/sda3
timeout 10 ui menu.c32 label Other Linux linux /boot/vmlinuz-linux initrd /boot/initramfs-linux.img append root=/dev/sda3 rw quiet label MAIN com32 chain.c32 append hd0 0
memtest を使う
公式リポジトリから memtest86+ をインストールしてください。
LABEL
セクションを使って memtest を起動してください:
/boot/syslinux/syslinux.cfg
... LABEL memtest MENU LABEL Memtest86+ LINUX ../memtest86+/memtest.bin ...
HDT
HDT (Hardware Detection Tool) はハードウェアの情報を表示します。.c32
ファイルを /boot/syslinux/
からコピーする必要があります。
PCI 情報は、/usr/share/hwdata/pci.ids
を /boot/syslinux/pci.ids
にコピーしてから以下を設定ファイルに追加してください:
/boot/syslinux/syslinux.cfg
LABEL hdt MENU LABEL Hardware Info COM32 hdt.c32
再起動と電源オフ
以下のセクションを使ってマシンを再起動したり電源オフにできます:
/boot/syslinux/syslinux.cfg
LABEL reboot MENU LABEL Reboot COM32 reboot.c32 LABEL poweroff MENU LABEL Power Off COMBOOT poweroff.com
メニューをクリアする
メニューを終了した時に画面をクリアするには、次の行を追加してください:
/boot/syslinux/syslinux.cfg
MENU CLEAR
キーボードリマッピング
ブートパラメータを頻繁に編集する必要があるような場合、キーボードレイアウトのリマップを行うとよいかもしれません。これを行うことで US キーボード以外で "=", "/" などの文字を打つのが楽になります。
まず互換性のあるキーマップ (例えば German) を作成する必要があります:
# cp /usr/share/kbd/keymaps/i386/qwerty/us.map.gz ./ # cp /usr/share/kbd/keymaps/i386/qwertz/de.map.gz ./ # gunzip {de,us}.map.gz # mv de.{,k}map # mv us.{,k}map # keytab-lilo de > de.ktl
最後のコマンドは root で実行してください、そうしないと動きません。
root で de.ktl
を /boot/syslinux/
にコピーして所有者を root に設定してください:
# chown root:root /boot/syslinux/de.ktl
syslinux.conf
を編集して以下を追加してください:
/boot/syslinux/syslinux.cfg
KBDMAP de.ktl
メニューを隠す
このオプションを使うことでメニューを隠し、タイムアウトだけを表示することができます:
/boot/syslinux/syslinux.cfg
MENU HIDDEN
どれかキーを押すとメニューが表示されます。
Pxelinux
(syslinux パッケージによって提供されている) pxelinux ブートローダをクライアントの boot ディレクトリにコピーしてください。
# cp /usr/lib/syslinux/bios/pxelinux.0 "$root/boot" # mkdir "$root/boot/pxelinux.cfg"
また、pxelinux.cfg
を作成しましたが、このフォルダはデフォルトで pxelinux によって設定ファイルが検索されます。異なるホスト MAC を区別したくないので、default
設定を作ります。
# vim "$root/boot/pxelinux.cfg/default"
default linux label linux kernel vmlinuz-linux append initrd=initramfs-linux.img quiet ip=:::::eth0:dhcp nfsroot=10.0.0.1:/arch
NBD を使っている場合、次の append 行を使って下さい:
append ro initrd=initramfs-linux.img ip=:::::eth0:dhcp nbd_host=10.0.0.1 nbd_name=arch root=/dev/nbd0
pxelinux の設定構文は syslinux と同じです; 詳しくは上流のドキュメントを参照してください。
カーネルと initramfs は TFTP を使って転送されます。そのためそれらのパスは TFTP の相対パスになります。また、root ファイルシステムは NFS マウントになり、NFS サーバーの相対パスになります。
実際に pxelinux をロードするには、/etc/dhcpd.conf
内の filename "/grub/i386-pc/core.0";
を filename "/pxelinux.0"
に置き換えてください。
トラブルシューティング
Syslinux プロンプトを使う
(syslinux.cfg
で設定した) 起動したいエントリの LABEL
名を入力することができます。サンプル設定を使っている場合、次を入力してください:
boot: arch
設定ファイルがロードできないというエラーが表示される場合、必要なブートパラメータを渡すことができます。例:
boot: ../vmlinuz-linux root=/dev/sda2 rw initrd=../initramfs-linux.img
ramfs の boot:
にアクセスできないと、一時的にカーネルを起動することができません。
- 1. root パーティションをマウントするために、一時ディレクトリを作成して下さい (存在しない場合):
# mkdir -p /new_root
- 2.
/new_root
に/
をマウントしてください (/boot/
が同じパーティション上にある場合。他のパーティションにあるときは両方マウントする必要があります):
# mount /dev/sd[a-z][1-9] /new_root
- 3.
vim
を使って必要に応じてsyslinux.cfg
を編集しファイルを保存してください。 - 4. 再起動してください。
Fsck が root パーティションで失敗する
root パーティションが破損している (ジャーナルが壊れている) 場合、ramfs の緊急シェルで、root ファイルシステムをマウントしてください:
# mount /dev/root partition /new_root
そして root パーティションから tune2fs バイナリを取得してください (Syslinux には含まれていません):
# cp /new_root/sbin/tune2fs /sbin/
ext2fs: no external journal の指示に従って root パーティションの新しいジャーナルを作成して下さい。
No Default or UI found on some computers
特定のマザーボードメーカーでは USB デバイスからの起動への対応が遅れています。最近のコンピュータでは起動できる ext4 でフォーマットされた USB ドライブでも、カーネルや initrd が含まれているブートパーティションが FAT16 パーティションでないとフリーズするコンピュータもあります。旧式のマシンが ldlinux
をロードして syslinux.cfg
の読み込みに失敗するのを防ぐには、cfdisk
を使って (2GB 以下の) FAT16 パーティションを作成して dosfstools を使ってフォーマットしてください:
# mkfs.msdos -F 16 /dev/sda1
それから Syslinux をインストール・設定してください。
Missing operating system
このメッセージが表示されるときは、/boot
が含まれているパーティションの boot フラグが有効になっているか確認してください。フラグが有効になっている場合、おそらくパーティションがセクタ63や2048でなく1から始まっています。fdisk -l
で開始セクタを確認してください。セクタ1から始まっている場合は、レスキューディスクの gparted
を使ってパーティションを移動することができます。もしくは、boot パーティションを分割しているのなら、次のコマンドで /boot
をバックアップして Arch のインストールディスクで起動することができます:
# cp -a /boot /boot.bak
次に、cfdisk
を使って /boot
パーティションを削除して、再作成してください。この時パーティションを正しいセクタ 63 から開始してください。ビギナーズガイドに記述されているようにパーティションをマウントして、マウントしたシステムに chroot
してください。次のコマンドで /boot
を復元します:
# cp -a /boot.bak/* /boot
/etc/fstab
が問題ないかどうか確認して、次のコマンドを実行して再起動してください:
# syslinux-install_update -iam
md RAID 1 アレイから起動しようとして Syslinux が理解しない新しいバージョンのメタデータを使ってアレイを作成した場合にもこのエラーが表示されます。2013年8月現在、mdadm はデフォルトでバージョン 1.2 のメタデータでアレイを作成しますが、Syslinux は 1.0 以上の新しいメタデータを理解しません。この場合、--metadata=1.0
フラグを使って mdadm で RAID アレイを再生成する必要があります。
Syslinux を無視して Windows が起動する
解決方法: /boot
を含むパーティションのブートフラグが有効になっているか確認してください。また、Windows パーティションのブートフラグは無効にする必要があります。上のインストールセクションを参照してください。
The MBR that comes with Syslinux looks for the first active partition that has the boot flag set. The Windows partition was likely found first and had the boot flag set. If you wanted, you could use the MBR that Windows or MS-DOS fdisk
provides.
メニューエントリが動作しない
メニューエントリを選択しても何も起こらない場合、メニューを"更新"するだけになっています。おそらく syslinux.cfg
ファイルにエラーが存在しています。Tab
を押してブートパラメータを編集してください。もしくは、Esc
を押してブートエントリの LABEL
を入力してください (例: arch)。
ldlinux.sys を削除できない
ldlinux.sys
ファイルには immutable 属性が設定されるので、削除したり上書きすることができません。これはファイルのセクター位置が変わってしまうと Syslinux を再インストールする必要があるからです。ファイルを削除するには、以下を実行してください:
# chattr -i /boot/syslinux/ldlinux.sys # rm /boot/syslinux/ldlinux.sys
Problem: As of linux-3.0, the modesetting driver tries to keep the current contents of the screen after changing the resolution (at least it does so with my Intel, when having Syslinux in text mode). It seems that this goes wrong when combined with the vesamenu module in Syslinux (the white block is actually an attempt to keep the Syslinux menu, but the driver fails to capture the picture from vesa graphics mode).
If you have a custom resolution and a vesamenu
with early modesetting, try to append the following in syslinux.cfg
to remove the white block and continue in graphics mode:
APPEND root=/dev/sda6 rw 5 vga=current quiet splash
Windows を他のドライブにインストールしている時に、チェインロードが動作しない
Windows を Arch とは別のドライブにインストールしていてチェインロードに問題が起こるときは、以下の設定を試して下さい:
LABEL Windows MENU LABEL Windows COM32 chain.c32 APPEND mbr:0xdfc1ba9e swap
mbr コードはあなたの windows ドライブのものに置き換えて (詳しくは上を参照)、swap
をオプションに追加してください。