diary/Kojima/2014-01-10
の編集
http://plamo.linet.jp/?diary/Kojima/2014-01-10
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
-- 雛形とするページ --
diary/Template
[[diary/Kojima]] ・Plamo Linuxのカーネルパッケージの更新方法. Plamo Linuxの場合,カーネルのパッケージはバイナリイメージ本体とヘッダーファイル, ソースコードの3つに分かれており,64ビット版のPlamo-5.2の場合, バイナリイメージは 00_base/kernel-3.12.5_plamo64-x86_64-P1.txz, ヘッダーファイルは 01_minimum/devel.txz/kernel_headers-3.12.5_plamo64-i386-P1.txz, ソースコードは 09_kernel/kernelsrc-3.12.5_plamo64-noarch-P1.txz, という構成になっている. これらのパッケージも,通常のパッケージ同様, updatepkgコマンドで更新することはできるものの, カーネル本体(バイナリイメージ)を更新した場合, ブートローダの設定ファイルを調整してやる必要がある. また,何らかのトラブルがあって新しいカーネルでは起動しない場合に備え, カーネル本体は updatepkg で入れ替えてしまうのではなく, 動作している既存のカーネルと共存させることがお勧め. そのための方法は以下のとおり. -古いカーネル本体のパッケージ名を変更する Plamo Linuxのパッケージ管理システムでは, インストール済みのパッケージは/var/log/packages/に パッケージのベース名(カーネル本体の場合はkernel)で記録されており, updatepkg等はこのディレクトリを調べて同じベース名のパッケージがインストール済みならば それを削除してから新しいパッケージをインストールする. そのため,ここに記録されているパッケージのベース名を別の名前に変えてしまえば, 同じベース名の複数のパッケージを共存させることが可能になる. 例えば,以下ではファイル名にカーネルのバージョンを付記することで, ベース名が異なるようにしている. # ls /var/log/packages | grep kernel kernel kernel_headers # mv /var/log/packages{,-`uname -r`} # ls /var/log/packages | grep kernel kernel-3.9.3-plamo64 kernel_headers こうしておけば,古いカーネルパッケージ(kernel-3.9.3_plamo64-x86_64-P1.txz)を削除しなくても, 新しいカーネルパッケージをインストールすることができる. # installpkg kernel-3.12.5_plamo64-x86_64-P1.txz kernel-3.12.5_plamo64-x86_64-P1 のインストール中 PACKAGE DESCRIPTION: .. # ls /var/log/packages | grep kernel kernel kernel-3.9.3-plamo64 kernel_headers この結果,/boot以下にも2種のカーネルが存在することになる. # ls /boot System.map@ config@ diag1.img inside.bmp vmlinuz@ System.map-3.12.5-plamo64 config-3.12.5-plamo64 diag2.img onlyblue.bmp vmlinuz-3.12.5-plamo64 System.map-3.9.3-plamo64 config-3.9.3-plamo64 grub/ tuxlogo.bmp vmlinuz-3.9.3-plamo64 - ブートローダに設定を追加する 起動時のカーネルを読み込むブートローダに,新しくインストールしたカーネルを読みこむ設定を追加する. ブートローダにgrubを使っている場合,設定ファイルは /boot/grub/grub.cfg. このファイルで,カーネルを読み込んでいるのは以下の部分. 63 ### BEGIN /etc/grub.d/10_linux ### 64 menuentry 'Plamo Linux' --class plamo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3d357515-123b-4489-bb5c-034da40d0e30' { 65 load_video 66 set gfxpayload=keep 67 insmod gzio 68 insmod part_msdos 69 insmod ext2 70 set root='hd0,msdos1' 71 if [ x$feature_platform_search_hint = xy ]; then 72 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3d357515-123b-4489-bb5c-034da40d0e30 73 else 74 search --no-floppy --fs-uuid --set=root 3d357515-123b-4489-bb5c-034da40d0e30 75 fi 76 echo 'Linux 3.9.3-plamo64 をロード中...' 77 linux /boot/vmlinuz-3.9.3-plamo64 root=/dev/sda1 ro vga16 unicon=eucjp vt.default_utf8=0 panic_output=7 78 } この部分をcut & pasteして新しいカーネル用の設定を追加する. 具体的には64行目の"menuentry.."から78行目までをコピーすることになる. viを使える人なら64行目で15yして,PすればOK. 修正が必要なのはロードするカーネルの名前(vmlinuz-3.12.5-plamo64)と, それを選択するための menuentry の名称で,修正後のgrub.cfgの該当部分はこんな感じ. 63 ### BEGIN /etc/grub.d/10_linux ### 64 menuentry 'kernel 3.12.5' --class plamo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3d357515-123b-4489-bb5c-034da40d0e30' { 65 load_video 66 set gfxpayload=keep 67 insmod gzio 68 insmod part_msdos 69 insmod ext2 70 set root='hd0,msdos1' 71 if [ x$feature_platform_search_hint = xy ]; then 72 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3d357515-123b-4489-bb5c-034da40d0e30 73 else 74 search --no-floppy --fs-uuid --set=root 3d357515-123b-4489-bb5c-034da40d0e30 75 fi 76 echo 'Linux 3.12.5-plamo64 をロード中...' 77 linux /boot/vmlinuz-3.12.5-plamo64 root=/dev/sda1 ro vga16 unicon=eucjp vt.default_utf8=0 panic_output=7 78 } 79 menuentry 'kernel 3.9.3' --class plamo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3d357515-123b-4489-bb5c-034da40d0e30' { 80 load_video 81 set gfxpayload=keep 82 insmod gzio 83 insmod part_msdos 84 insmod ext2 85 set root='hd0,msdos1' 86 if [ x$feature_platform_search_hint = xy ]; then 87 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3d357515-123b-4489-bb5c-034da40d0e30 88 else 89 search --no-floppy --fs-uuid --set=root 3d357515-123b-4489-bb5c-034da40d0e30 90 fi 91 echo 'Linux 3.9.3-plamo64 をロード中...' 92 linux /boot/vmlinuz-3.9.3-plamo64 root=/dev/sda1 ro vga16 unicon=eucjp vt.default_utf8=0 panic_output=7 93 } これで再起動すると,grubのメニュー画面に"kernel 3.12.5"が出るようになり, それを選べば新しいカーネルで起動するはず. #ref("plamo51_64_update.png") ここ長いことブートローダに lilo は使ってないので,liloの場合の方法は紹介できないのだけど, /etc/lilo.conf(だったか?) で同様に新しい設定を追加してから, "lilo"コマンドを実行することをお忘れなく. lilo の場合は /boot/vmlinuz を見てたはずなので,lilo.conf をイジらずに lilo を実行するだけで 新しいカーネルを読み込むようになる気はする. 残りのkernel_headersとkernelsrcパッケージは特に古いのを残しておく意味もないので, updatepkgで古いパッケージは削除して更新すればいい. #comment
タイムスタンプを変更しない
[[diary/Kojima]] ・Plamo Linuxのカーネルパッケージの更新方法. Plamo Linuxの場合,カーネルのパッケージはバイナリイメージ本体とヘッダーファイル, ソースコードの3つに分かれており,64ビット版のPlamo-5.2の場合, バイナリイメージは 00_base/kernel-3.12.5_plamo64-x86_64-P1.txz, ヘッダーファイルは 01_minimum/devel.txz/kernel_headers-3.12.5_plamo64-i386-P1.txz, ソースコードは 09_kernel/kernelsrc-3.12.5_plamo64-noarch-P1.txz, という構成になっている. これらのパッケージも,通常のパッケージ同様, updatepkgコマンドで更新することはできるものの, カーネル本体(バイナリイメージ)を更新した場合, ブートローダの設定ファイルを調整してやる必要がある. また,何らかのトラブルがあって新しいカーネルでは起動しない場合に備え, カーネル本体は updatepkg で入れ替えてしまうのではなく, 動作している既存のカーネルと共存させることがお勧め. そのための方法は以下のとおり. -古いカーネル本体のパッケージ名を変更する Plamo Linuxのパッケージ管理システムでは, インストール済みのパッケージは/var/log/packages/に パッケージのベース名(カーネル本体の場合はkernel)で記録されており, updatepkg等はこのディレクトリを調べて同じベース名のパッケージがインストール済みならば それを削除してから新しいパッケージをインストールする. そのため,ここに記録されているパッケージのベース名を別の名前に変えてしまえば, 同じベース名の複数のパッケージを共存させることが可能になる. 例えば,以下ではファイル名にカーネルのバージョンを付記することで, ベース名が異なるようにしている. # ls /var/log/packages | grep kernel kernel kernel_headers # mv /var/log/packages{,-`uname -r`} # ls /var/log/packages | grep kernel kernel-3.9.3-plamo64 kernel_headers こうしておけば,古いカーネルパッケージ(kernel-3.9.3_plamo64-x86_64-P1.txz)を削除しなくても, 新しいカーネルパッケージをインストールすることができる. # installpkg kernel-3.12.5_plamo64-x86_64-P1.txz kernel-3.12.5_plamo64-x86_64-P1 のインストール中 PACKAGE DESCRIPTION: .. # ls /var/log/packages | grep kernel kernel kernel-3.9.3-plamo64 kernel_headers この結果,/boot以下にも2種のカーネルが存在することになる. # ls /boot System.map@ config@ diag1.img inside.bmp vmlinuz@ System.map-3.12.5-plamo64 config-3.12.5-plamo64 diag2.img onlyblue.bmp vmlinuz-3.12.5-plamo64 System.map-3.9.3-plamo64 config-3.9.3-plamo64 grub/ tuxlogo.bmp vmlinuz-3.9.3-plamo64 - ブートローダに設定を追加する 起動時のカーネルを読み込むブートローダに,新しくインストールしたカーネルを読みこむ設定を追加する. ブートローダにgrubを使っている場合,設定ファイルは /boot/grub/grub.cfg. このファイルで,カーネルを読み込んでいるのは以下の部分. 63 ### BEGIN /etc/grub.d/10_linux ### 64 menuentry 'Plamo Linux' --class plamo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3d357515-123b-4489-bb5c-034da40d0e30' { 65 load_video 66 set gfxpayload=keep 67 insmod gzio 68 insmod part_msdos 69 insmod ext2 70 set root='hd0,msdos1' 71 if [ x$feature_platform_search_hint = xy ]; then 72 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3d357515-123b-4489-bb5c-034da40d0e30 73 else 74 search --no-floppy --fs-uuid --set=root 3d357515-123b-4489-bb5c-034da40d0e30 75 fi 76 echo 'Linux 3.9.3-plamo64 をロード中...' 77 linux /boot/vmlinuz-3.9.3-plamo64 root=/dev/sda1 ro vga16 unicon=eucjp vt.default_utf8=0 panic_output=7 78 } この部分をcut & pasteして新しいカーネル用の設定を追加する. 具体的には64行目の"menuentry.."から78行目までをコピーすることになる. viを使える人なら64行目で15yして,PすればOK. 修正が必要なのはロードするカーネルの名前(vmlinuz-3.12.5-plamo64)と, それを選択するための menuentry の名称で,修正後のgrub.cfgの該当部分はこんな感じ. 63 ### BEGIN /etc/grub.d/10_linux ### 64 menuentry 'kernel 3.12.5' --class plamo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3d357515-123b-4489-bb5c-034da40d0e30' { 65 load_video 66 set gfxpayload=keep 67 insmod gzio 68 insmod part_msdos 69 insmod ext2 70 set root='hd0,msdos1' 71 if [ x$feature_platform_search_hint = xy ]; then 72 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3d357515-123b-4489-bb5c-034da40d0e30 73 else 74 search --no-floppy --fs-uuid --set=root 3d357515-123b-4489-bb5c-034da40d0e30 75 fi 76 echo 'Linux 3.12.5-plamo64 をロード中...' 77 linux /boot/vmlinuz-3.12.5-plamo64 root=/dev/sda1 ro vga16 unicon=eucjp vt.default_utf8=0 panic_output=7 78 } 79 menuentry 'kernel 3.9.3' --class plamo --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-3d357515-123b-4489-bb5c-034da40d0e30' { 80 load_video 81 set gfxpayload=keep 82 insmod gzio 83 insmod part_msdos 84 insmod ext2 85 set root='hd0,msdos1' 86 if [ x$feature_platform_search_hint = xy ]; then 87 search --no-floppy --fs-uuid --set=root --hint-bios=hd0,msdos1 --hint-efi=hd0,msdos1 --hint-baremetal=ahci0,msdos1 3d357515-123b-4489-bb5c-034da40d0e30 88 else 89 search --no-floppy --fs-uuid --set=root 3d357515-123b-4489-bb5c-034da40d0e30 90 fi 91 echo 'Linux 3.9.3-plamo64 をロード中...' 92 linux /boot/vmlinuz-3.9.3-plamo64 root=/dev/sda1 ro vga16 unicon=eucjp vt.default_utf8=0 panic_output=7 93 } これで再起動すると,grubのメニュー画面に"kernel 3.12.5"が出るようになり, それを選べば新しいカーネルで起動するはず. #ref("plamo51_64_update.png") ここ長いことブートローダに lilo は使ってないので,liloの場合の方法は紹介できないのだけど, /etc/lilo.conf(だったか?) で同様に新しい設定を追加してから, "lilo"コマンドを実行することをお忘れなく. lilo の場合は /boot/vmlinuz を見てたはずなので,lilo.conf をイジらずに lilo を実行するだけで 新しいカーネルを読み込むようになる気はする. 残りのkernel_headersとkernelsrcパッケージは特に古いのを残しておく意味もないので, updatepkgで古いパッケージは削除して更新すればいい. #comment
テキスト整形のルールを表示する
添付ファイル:
plamo51_64_update.png
190件
[
詳細
]