さくら VPS の実装にはアタリハズレがある?とかないとかで、 NetBSD のインストールは出来てもブートローダが動かないとか、 ***/Linux のみなさんも grub-install に失敗するとか… いろいろあります。
ハズレをひくと、なにをやっても失敗していくので、 (ここは安直なソリューションで) 一番普通に動きそうな CentOS 6 i386 をカスタムOSインストールから入れ、 Cent OS 6 の grub (legacy) から NetBSD を起動してもらうことにします (x64 の組合せでは試してません)。
BIOS → CentOS → NetBSD (CentOS の grub legacy が /netbsd をロード)
もっと真面目にゴリゴリ先頭の 1 MB hack とかする方法は、 すでにたくさんのみなさんが試しているので、 先人たちにおまかせします(ぐぐってみてくだだい)。
なお、いちばん簡単なソリューションとして、 さくらの VPS を解約・再契約、これをアタリをひくまで試すのが簡単らしいです:)
***************************
手順をまとめると、次のようになります。順番に説明しましょう。
1. NetBSD をインストール (パーティッション調整は NetBSD installer が素直) 2. CentOS をインストール (NetBSD で Linux native としておいた場所へ) 3. CentOS の /boot/grub/grub.conf を編集
MBR を編集する理屈は multiboot の例 と同じなので、そちらを参考にしてください。
では作業です。
まずは、 さくらの VPS 「ISO イメージインストール」で NetBSD のインストールをします。
(a) さくらの VPS のコントロールパネルへ行き (b) ISO イメージインストールを選択、SFTP アカウントを作成 (c) SFTP で NetBSD の ISO をアップロード (d) 「インストールを実行」をクリック
MBR の設定まできたら、次のように MBR を分けることにします。
1 /boot 500MB 2 / 40,000MB 3 NetBSD 160,000MB 4 swap 4,000MBCentOS が 1 2 4 を使い 3番目を NetBSD で使う想定です。 NetBSD の設定画面では /boot などではなく
1 linux native 500MB 2 linux native 40,000MB 3 NetBSD 160,000MB 4 swap 4,000MBとだけ設定することになります( 注: NetBSD で見える ld0a ld0b ld0c ld0d は、この MBR 3 番目中の区切りです )。 あとは普通にインストールしてください。
さくらの VPS のコントロールパネルの「カスタム OS インストール」から CentOS 6 i386 を選択してインストールします。
注意点はパーティッションの選択部分だけです。 あとは普通にインストールしてください。
パーティッションは「カスタムレイアウト」を選択し、
1 /boot 500MB 2 / 40,000MB 3 NetBSD 160,000MB 4 swap 4,000MBとなるように MBR 1 2 4 の分を設定してください。
備考: ちなみに CentOS 上で fdisk や df をとると、次のようなかんじになります。 fdisk は次のようになります:
Disk /dev/vda: 214.7 GB, 214748364800 bytes 16 heads, 63 sectors/track, 416101 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0007adc4 Device Boot Start End Blocks Id System /dev/vda1 * 1 1020 514048+ 83 Linux Partition 1 does not end on cylinder boundary. /dev/vda2 1021 82302 40965750 83 Linux Partition 2 does not end on cylinder boundary. /dev/vda3 82302 407395 163846935 a9 NetBSD Partition 3 does not end on cylinder boundary. /dev/vda4 407395 416102 4388435 82 Linux swap / Solaris Partition 4 does not end on cylinder boundary.df をとると
Filesystem 1K-blocks Used Available Use% Mounted on /dev/vda2 40190956 1329208 36813464 4% / tmpfs 969372 0 969372 0% /dev/shm /dev/vda1 489637 26640 437295 6% /boot
/boot/grub/grub.conf のオリジナルは次のような設定です。
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/vda2 # initrd /initrd-[generic-]version.img #boot=/dev/vda default=0 timeout=5 #splashimage=(hd0,0)/grub/splash.xpm.gz serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console hiddenmenu title CentOS 6 (2.6.32-504.23.4.el6.i686) root (hd0,0) kernel /vmlinuz-2.6.32-504.23.4.el6.i686 ro root=UUID=a3484b63-82ac-4a73-851a-bd1549f2ce23 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_NO_LVM rd_NO_DM rhgb quiet nomodeset clocksource=hpet console=tty0 console=ttyS0,115200n8r initrd /initramfs-2.6.32-504.23.4.el6.i686.img
ファイルの最後に次の行を追加し
title NetBSD/i386 (/netbsd) root (hd0,2,a) kernel /netbsd root=ld0a title NetBSD/i386 6.1.5 (/netbsd -s) root (hd0,2,a) kernel /netbsd -s root=ld0a title NetBSD/i386 bak (/netbsd.bak) root (hd0,2,a) kernel /netbsd.bak root=ld0adefault=1 に変更してください。 (注: なお、これは grub legacy の例です。grub2 では記述が異なります)
grub から /netbsd をロードするため NetBSD の /boot.cfg は読まれません。 そこで、シングルユーザモード起動や netbsd.bak での起動など、 非常時用の設定もいれてあります。
編集後、grub.conf 全体としては、こうなります。
# grub.conf generated by anaconda # # Note that you do not have to rerun grub after making changes to this file # NOTICE: You have a /boot partition. This means that # all kernel and initrd paths are relative to /boot/, eg. # root (hd0,0) # kernel /vmlinuz-version ro root=/dev/vda2 # initrd /initrd-[generic-]version.img #boot=/dev/vda default=1 timeout=5 #splashimage=(hd0,0)/grub/splash.xpm.gz serial --unit=0 --speed=115200 --word=8 --parity=no --stop=1 terminal --timeout=10 serial console hiddenmenu title CentOS 6 (2.6.32-504.23.4.el6.i686) root (hd0,0) kernel /vmlinuz-2.6.32-504.23.4.el6.i686 ro root=UUID=a3484b63-82ac-4a73-851a-bd1549f2ce23 rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=jp106 rd_NO_LVM rd_NO_DM rhgb quiet nomodeset clocksource=hpet console=tty0 console=ttyS0,115200n8r initrd /initramfs-2.6.32-504.23.4.el6.i686.img title NetBSD/i386 (/netbsd) root (hd0,2,a) kernel /netbsd root=ld0a title NetBSD/i386 6.1.5 (/netbsd -s) root (hd0,2,a) kernel /netbsd -s root=ld0a title NetBSD/i386 bak (/netbsd.bak) root (hd0,2,a) kernel /netbsd.bak root=ld0a
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >