ページへ戻る

− Links

 印刷 

Gentoo Linuxな生活​/大容量ディスクとGRUB2で悩む の変更点 :: Nest Of Hawk

xpwiki:Gentoo Linuxな生活/大容量ディスクとGRUB2で悩む の変更点

  
現: 2018-06-09 (土) 19:31:57 maruo[3] ソース[4]
Line 1: Line 1:
 +[[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設定はしないほうが無難です。
  

  • Gentoo Linuxな生活/大容量ディスクとGRUB2で悩む のバックアップ差分(No. All)
    • 現: 2018-06-09 (土) 19:31:57 maruo[3]