Gentoo Linuxな生活​/システム管理関連

UEFIとGRUB2と大容量ディスク anchor.png

そもそも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を導入することといたしました。ブートさせるまでに苦労したので、今後のためにまとめておきます~。

Page Top

必要なことをまとめておく anchor.png

  • LinuxカーネルをUEFI,大容量ディスク対応にコンフィギュレーションしておく
  • 大容量HDDはGPTパーティションでパーティションを切る
  • ブートパーティションは、EFIブートパーティション属性で、FATでフォーマットしておく
  • ブートローダーの設定をしておく
  • UEFIでブートできるよう設定するためには、予めUEFIでブートできるデバイスでブートしてから設定する

さて、それでは順番にやってみましょう~

Page Top

LinuxカーネルをUEFI、大容量ディスク対応にコンフィギュレーションしておく anchor.png

キーワードは、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にしておきましょう。

Page Top

HDDのパーティションを切る anchor.png

かつてパーティションを切るための定番コマンドは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が指定できますので、このモードを指定してブートすると、コマンドラインだけで起動してくれます。ここまでくれば簡単です。

Page Top

ディスクをフォーマットする。 anchor.png

さて、ここで、/dev/sda1が先程作ったEFIブートパーティション、/dev/sda2がrootで、EXT4でフォーマットすると仮定しましょうか。以下で実施しましょう

# mkfs.vfat /dev/sda1
# mkfs.ext4 /dev/sda2
Page Top

Gentooのインストール手順に従って… anchor.png

あとはおなじみ、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でコピーしておしまいです。

Page Top

ブートマネージャをインストールする。 anchor.png

efibootmgrとGRUB2をインストールします。まず、make.confに以下を追加。

GRUB_PLATFORMS="efi-32 efi-64

で、

# emerge grub:2 efibootmgr
Page Top

HDDにGRUBを設定する anchor.png

先程からのとおり、/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にありますので、これをいじることで、いろいろと変更できまーす。

Page Top

おまけ BIOS側の設定 anchor.png

マザーボードのBIOS側の設定を注意しておきましょう。

  • Secure BootはOFFでいい CSM16 bootメニューは、できればEFI/レガシー共用としておくと良い。

UEFIブートだからと、Secure Boot設定はしないほうが無難です。


Front page   Freeze Diff Backup Copy Rename ReloadPrint View   New Page Page list Search Recent changes   Help   RSS of recent changes (RSS 1.0) RSS of recent changes (RSS 2.0) RSS of recent changes (RSS Atom) Powered by xpWiki
Counter: 401, today: 3, yesterday: 1
Princeps date: 2018-06-09 (Sat) 19:31:57
Last-modified: 2018-06-09 (Sat) 19:31:57 (JST) (468d) by maruo
ページ内検索

ログイン

ユーザー名:


パスワード:





パスワード紛失

メインメニュー

サブメニュー
自宅鯖計画

Gentoo Linuxな生活

玄箱HGにGentoo格闘記

航空ショーへ行こう

モータースポーツな世界

奥深き写真の世界への誘い

我思う ゆえに我あり



携帯用QRコード