備えあれば,憂い無し: 不測の事態に備え,予備カーネルを用意する. (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
Networking support
Device Drivers
- Misc devices を N に.
- ATA/ATAPI/MFM/RLL support を N に(多分,SATAだけで大丈夫だと思う).
- Multiple devices driver support
- RAID support を N に.
- Network device support
- Hardware Monitoring support
- Intel core 2 以外 N に.
- X86 Platform Specific Device Drivers は N に.
configが変更されたので,PKGBUILDのmd5sumを対応して変更する
cd ../.. makepkg -g >> PKGBUILD vim PKGBUILD