|
現: 2018-06-09 (土) 19:31:57 maruo  |
| + | [[Gentoo Linuxな生活/システム管理関連]] |
| | | |
| + | *UEFIとGRUB2と大容量ディスク [#r240e986] |
| + | そもそもEFIが開発された動機は、1990年代中盤のインテルとヒューレットパッカードによる初代Itanium機の開発初期にまでさかのぼる。IBM PC由来のSystem BIOS等の制限等(16ビットプロセッサモード、1MBのアドレス空間、PC/ATハードウェアへの依存、等)によって、従来の各種スキームはItaniumのターゲットである巨大なサーバプラットフォームには採用できない。その課題に対しての最初の成果が、当初1998年に Intel Boot Initiativeと呼ばれ、後にEFIと名前を変えた。 |
| + | |
| + | ということで、複雑、高機能化するPCの機能を活かすために、従来のBIOSに変わるものとして作られたのがUEFIです。で、このUEFIで、直接我々が受けられる恩恵は何かと言うと、最近多くなってきた、大容量のHDDをブートデバイスとして使用できると言うことです。今回、サーバ側のHDDが容量不足となってまいりまして、6TBのHDDを購入し、これにLinuxを導入することといたしました。ブートさせるまでに苦労したので、今後のためにまとめておきます~。 |
| + | |
| + | *必要なことをまとめておく [#b919266d] |
| + | -LinuxカーネルをUEFI,大容量ディスク対応にコンフィギュレーションしておく |
| + | -大容量HDDはGPTパーティションでパーティションを切る |
| + | -ブートパーティションは、EFIブートパーティション属性で、FATでフォーマットしておく |
| + | -ブートローダーの設定をしておく |
| + | -UEFIでブートできるよう設定するためには、予めUEFIでブートできるデバイスでブートしてから設定する |
| + | |
| + | さて、それでは順番にやってみましょう~ |
| + | |
| + | *LinuxカーネルをUEFI、大容量ディスク対応にコンフィギュレーションしておく [#o53d90e2] |
| + | キーワードは、EFI,GPTです。 |
| + | ONFIG_EFI_PARTITION=y |
| + | CONFIG_EFI=y |
| + | CONFIG_EFI_STUB=y |
| + | CONFIG_FB_EFI=y |
| + | CONFIG_DMI_SCAN_MACHINE_NON_EFI_FALLBACK=y |
| + | CONFIG_EFI_VARS=y |
| + | CONFIG_EFI_ESRT=y |
| + | CONFIG_EFI_FAKE_MEMMAP=y |
| + | CONFIG_EFI_MAX_FAKE_MEM=8 |
| + | CONFIG_EFI_RUNTIME_WRAPPERS=y |
| + | CONFIG_EFI_BOOTLOADER_CONTROL=y |
| + | CONFIG_EFI_CAPSULE_LOADER=y |
| + | CONFIG_EFI_TEST=y |
| + | CONFIG_EFIVAR_FS=m |
| + | |
| + | この辺はONにしておきましょう。 |
| + | |
| + | *HDDのパーティションを切る [#ge7be6d4] |
| + | かつてパーティションを切るための定番コマンドはfdiskでした。が、古いバージョンは2TBの領域で、かつMBR(マスターブートレコード)に対応したブートディスクしか作成できませんでした。 |
| + | |
| + | ので、gdiskを使用します。ここでは、/dev/sdaにパーティションを切りましょう |
| + | # gdisk /dev/sda |
| + | |
| + | Command (? for help): o ←GPTパーティションデーブルを作る |
| + | Command (? for help): n ←パーティションを新規作成する |
| + | Partition number (1-128, default 1):1 |
| + | First sector : |
| + | Last sector :+128M ←カーネルやGRUB2のファームを格納できるよう128MB取っておく(/bootにマウントする予定) |
| + | Hex code or GUID (L to show codes, Enter = 8300): EF00 ←EFI用の領域とマークする |
| + | |
| + | ここだけ気をつけてくださいね。その他のパーティションは普通にLinuxを作るときと一緒です。/rootに20GB程度?あとはお好みに応じて。その他はfdiskを使ったことある人は同じ操作でできるでしょう。 |
| + | |
| + | *UEFIブートできるデバイスでブートする |
| + | Gentooでは、UEFIブートできるのはLiveDVDだけです。Minimal install CDだとUEFIブートしてくれないので、このあとの設定ができません…最新のLiveDVDだと、Advanced BOOT Optionで、CommandLine Modeが指定できますので、このモードを指定してブートすると、コマンドラインだけで起動してくれます。ここまでくれば簡単です。 |
| + | |
| + | *ディスクをフォーマットする。 [#j1100e92] |
| + | さて、ここで、/dev/sda1が先程作ったEFIブートパーティション、/dev/sda2がrootで、EXT4でフォーマットすると仮定しましょうか。以下で実施しましょう |
| + | |
| + | # mkfs.vfat /dev/sda1 |
| + | # mkfs.ext4 /dev/sda2 |
| + | |
| + | *Gentooのインストール手順に従って… [#m137c998] |
| + | あとはおなじみ、Gentooのインストール手順です |
| + | |
| + | # mount /dev/sda2 /mnt/gentoo |
| + | # mkdir -p /mnt/gentoo/boot |
| + | # mkdir -p /mnt/gentoo/sys |
| + | # mkdir -p /mnt/gentoo/dev |
| + | |
| + | Stage Tar Ball 展開 |
| + | |
| + | # mount /dev/sda1 /mnt/gentoo/boot |
| + | # mount -t proc proc /mnt/gentoo/proc |
| + | # mount --rbind /sys /mnt/gentoo/sys |
| + | # mount --rbind /dev /mnt/gentoo/dev |
| + | # chroot /mnt/gentoo |
| + | # env-update |
| + | .... |
| + | |
| + | ちなみに、私はディスクの交換だったので、すでに作られていた、前システムのrootイメージをrsyncでコピーしておしまいです。 |
| + | |
| + | *ブートマネージャをインストールする。 [#k25a94df] |
| + | efibootmgrとGRUB2をインストールします。まず、make.confに以下を追加。 |
| + | |
| + | GRUB_PLATFORMS="efi-32 efi-64 |
| + | |
| + | で、 |
| + | |
| + | # emerge grub:2 efibootmgr |
| + | |
| + | |
| + | *HDDにGRUBを設定する [#d6bebe3b] |
| + | 先程からのとおり、/dev/sdaがブートディスク、/bootがEFIのブートパーティションとしますね。 |
| + | |
| + | # grub2-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=gentoo_grub /dev/sda |
| + | # grub2-mkconfig -o /boot/grub/grub.cfg |
| + | |
| + | /boot内にある、Linuxカーネルを勝手に探索して、GRUBのメニューを作ってくれます。もしカーネルをアップデートするときも、 |
| + | # grub2-mkconfig -o /boot/grub/grub.cfg |
| + | を実行して修正することをおすすめします。 |
| + | |
| + | GRUBの設定は、/etc/default/grubにありますので、これをいじることで、いろいろと変更できまーす。 |
| + | |
| + | *おまけ BIOS側の設定 [#bb742cc9] |
| + | |
| + | マザーボードのBIOS側の設定を注意しておきましょう。 |
| + | -Secure BootはOFFでいい |
| + | CSM16 bootメニューは、できればEFI/レガシー共用としておくと良い。 |
| + | |
| + | UEFIブートだからと、Secure Boot設定はしないほうが無難です。 |