2016年12月29日

カーネル更新。APorteus-LXDE_ja-v16.12.20-i486.iso

nekoさんよりご案内があり、
起動時スプラッシュの赤字解消済みの
カーネルに、差し替えました。

upkernel-4.9-noarch-2.xzmのご用意があり、
nekoさんは、簡単なようにおっしゃるのですが、
じぶんには、できるはできましたが、むずかしかったです。

コメント欄でいえば、11月20日 11:15のご投稿に、
操作については載っているのですが、途中からちょっと
解らなくなって、我流になりました。

UP.APorteus-LXDE_ja-v16.12.20-i486.isoの作成までは、
問題なくできたのですが、それを、/mnt/sdXY/isoにある、
APorteus-LXDE_ja-v16.12.20-i486.isoと差し替えるだけでは
新しいカーネルが起動しないのはわかっていましたが、、、

間をはしょってやったことを云いますと、
UP.APorteus-LXDE_ja-v16.12.20-i486.isoを
dISOした中の/bootディレクトリを第一パーティションに在る
それとまるごと差し替えました。

そして,cheat code(起動オプション)を継承するため、
新しい/boot/syslinux/porteus.confのAPPEND行に
kmap=jp from=UUID:984f60e5-f050-4cce-bff9-8f690ac5ce97/iso/UP.APorteus-LXDE_ja-v16.12.20-i486.iso changes=UUID:984f60e5-f050-4cce-bff9-8f690ac5ce97/persis norootcopy extramod=/extra
を追記し、古いbootディレクトリ内の*.c32を、
新しい/boot/syslinux/にコピーして、ようやく起動しました。

じぶんとしては、手をかけ構築した
デスクトップ環境が無駄になってしまわないよう、
カーネルだけを変えたかったのです。

新規に作成したカーネル周りのsyslinuxディレクトリ内に、
なぜ、起動に必要な*.c32ファイルが足りないのか。
じぶんには、ちょっとした謎です。
適正なやり方のどこかの過程で生成されるもの?


posted by ブログ開設者 at 00:58| Comment(2) | linux | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
カーネル更新ツールを利用して更新したISOは以下の点が変更されます。

1.名前が"UP.旧ISO名"
2.ISO@/boot/syslinux/initrd.xz
3.ISO@/boot/syslinux/vmlinuz
4.ISO@/porteus/kernel-VVVV-AAAA.sgn
5.ISO@/porteus/base/000-kernel.xzm

vmlinuz、000-kernel.xzmはカーネルビルドで生成されるものです(更新実態)。
initrd.xz、kernel-VVVV-AAAA.sgnはISO識別管理の為更新されます。

[ブート環境の変更]
(1)EFIブート又はBIOSでPBRがGRUB2で、
vmlinuzとinitrd.xzをISO内部のものを指定し、
且つfromチートコードISO指定使用の場合、
そのISOの名前を"UP.旧ISO名"へ変更します。

(2)(1)以外で、直接取り出したvmlinuzとinitrd.xzを使用している場合は、
その取り出しvmlinuzとinitrd.xzを"UP.旧ISO名"のもので置換します。
更にfromチートコードISO指定使用の場合、
そのISOの名前を"UP.旧ISO名"へ変更します。


[カーネルのみの更新でその他は変えない方法]
"UP.旧ISO名"からvmlinuz、000-kernel.xzmを抽出して、
"旧ISO名"中の対応物を置換します。(dISO、mkISOコマンド使用)

[ブート環境の変更を上記"カーネルのみ更新"に対応させる方法]
(1)EFIブート又はBIOSでPBRがGRUB2で、
vmlinuzとinitrd.xzをISO内部のものを指定し、
且つfromチートコードISO指定使用の場合、変更不要です。

(2)(1)以外で、直接取り出したvmlinuzとinitrd.xzを使用している場合は、
その取り出しvmlinuzを"UP.旧ISO名"のもので置換します。

[注意]
PBRにextlinuxを使用している場合、カーネル置換で起動NGと成った時は
extlinuxを再設定して下さい(PBR再設定)。
例:/mnt/sdc1にPBRが設定されているパーティションがマウントされている場合
# cp /usr/share/live-usb/lib/*.c32 /mnt/sdc1/boot/syslinux/

32Bit
# /usr/share/live-usb/bin/extlinux32 -i /mnt/sdc1/boot/syslinux
64Bit
# /usr/share/live-usb/bin/extlinux64 -i /mnt/sdc1/boot/syslinux


追記:
上記の通り、PBRにGRUB2を使用すれば新ISOの名前を元の名前にすれば、
ブート環境は変更不要にできます。

grub.cfgの例
menuentry "APorteus-LXDE_ja-v16.12.20-x86_64.iso" {
set uuid="c41f04a5-ca7f-4551-9466-c3cb0bc7e858"
search --no-floppy --fs-uuid --set=root $uuid
set ISO="/porteus/arch/64/APorteus-LXDE_ja-v16.12.20-x86_64.iso"
loopback loop $ISO
linux (loop)/boot/syslinux/vmlinuz from=UUID:$uuid/$ISO \
changes=UUID:${uuid}/porteus/persist/lxde64 \
retry copy2ram rammod=00 kmap=jp reboot=force
initrd (loop)/boot/syslinux/initrd.xz
}

GRUB2使用でLIVE-USBを出力するのがベストですが、
リソースを小さくする為断念しました。

以上、ご参考に成れば幸いです。
Posted by neko at 2016年12月29日 13:01
早速にこと細かに説明してくださり、
ありがとうございます。
すっとアタマに入らないのは、
理解力のなさなのですが、
じっくり読んで、よく理解したい
と思います。
Posted by ブログ開設者 at 2016年12月29日 19:24
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: