備えあれば,憂い無し: 不測の事態に備え,予備カーネルを用意する. (ArchLinux)
コンテンツ
目次
概要
カーネルアップデートに失敗して,Linuxが起動できない,という状況を回避するため,
予備のカーネルを用意する.
カーネルの調達方法はいくつかあるが,今回はABSを利用して,自分でビルドすることを考える.
予備カーネルを用意する方法
3つ方法を知っている.
1) パッケージにあるkernel26-ltsを利用する.
2) 自分でABSを利用してビルドする.
2.5) 自分でABSを利用しないでビルドする.
3) /boot にあるファイルをバックアップしおく.例えば,kernel26.img → kernel26-backup.imgなど.
可能ならば,1) の方法を利用すべき.一番簡単(カーネルの再コンパイルが不要)で,安全だと思う.
ただ,kernelのヴァージョンが2.6.27なのが,自分にとっては都合が悪い.現在使用しているファイルシステム(squashfs)をサポートしてない.よって,結局パッチをあてて,カーネルを再コンパイルが必要.
どうせ,再コンパイルするならば,現在快調に動作している2.6.32を再コンパイルする.楽をするために,ABSを利用する.
3) の方法は試したことがないので,本当に大丈夫か定かではない.ただ,個人的には問題ないのではと高をくくっている.
step 1: copy and eidt files
cp -r /var/abs/core/kernel26 . mv kernel26 kernel26-second cd kernel26-second
PKGBUILDを編集する.パッケージ名はkernel26-secondにした.
% diff PKGBUILD PKGBUILD.original 5c5 < pkgname=('kernel26-second' 'kernel26-firmware' 'kernel26-second-headers') # Build stock -ARCH kernel --- > pkgname=('kernel26' 'kernel26-firmware' 'kernel26-headers') # Build stock -ARCH kernel 55c60 < package_kernel26-second() { --- > package_kernel26() { 102,103c107,108 < package_kernel26-second-headers() { < pkgdesc="Header files and scripts for building modules for kernel26-second" --- > package_kernel26-headers() { > pkgdesc="Header files and scripts for building modules for kernel26"
step 2: kernel config
必須ではない.しかし,どうせ再コンパイルするなら,少しは設定を変更しないと損した気分になる.
makepkg -o cd src/linux-2.6.32 cp ../config ./.config make prepare make gconfig
make menuconfigでも良い.自分はヘルプが常時,下に表示される gconfigが良い.
再設定した .config は もとの場所に config という名前(もとの名前)で戻しておく.
Processor Type and features
- Processor family を Core 2/newer Xeon に.
- Maximum number of CUPs を 2 に.
- Preemption Model を Voluntary Kernel Preemption に.
- Toshiba Laptop support, Dell laptop support を N に.
Networking support
- IrDA (infrared) subsystem support (赤外線) は N に.
- Plan 9 Resource Sharing Support を N に.
Device Drivers
- Misc devices を N に.
- ATA/ATAPI/MFM/RLL support を N に(多分,SATAだけで大丈夫だと思う).
-
Multiple devices driver support
- RAID support を N に.
-
Network device support
- Ethernet (10 or 100Mbit) を N に.
- Ethernet (1000 Mbit) は,Intel(R) PRO/1000 PCI-Express Gigabit Ethernet support (E1000E)以外 N に.
- Ethernet (10000 Mbit) を N に.
- Wireless は ATH5K 以外 N に.
-
Hardware Monitoring support
- Intel core 2 以外 N に.
- X86 Platform Specific Device Drivers は N に.
configが変更されたので,PKGBUILDのmd5sumを対応して変更する
cd ../.. makepkg -g >> PKGBUILD vim PKGBUILD
step 3: build and install
makepkgして、pacman -Uすれば良い.
最後に/boot/grub/menu.listに予備のカーネルを追加しておく.
title Arch Linux Second Kernel root (hd0,2) kernel /vmlinuz26-second root=/dev/sda6 resume=/dev/sda5 ro vga=792 i915.modeset=0 initrd /kernel26-second.img
一応,再起動して,予備のカーネルが正常に動作するかチェックする.
作成者 Toru Mano
最終更新時刻 2023-01-01 (c70d5a1)