Re: 問題ID: 14322

この質問の投稿一覧へ

なし Re: 問題ID: 14322

msg# 1.1
depth:
1
前の投稿 - 次の投稿 | 親投稿 - 子投稿.1 | 投稿日時 2015-10-11 15:48 | 最終変更
arashi1977  長老 居住地: 広島  投稿数: 1715
カーネルのビルド時って、基本的にはvmlinux(コンパイルしただけのカーネル)やbzImage(コンパイルしたものを圧縮したカーネルイメージ)が作成されるんですよね。
$ make help
(略)
Other generic targets:
  all		  - Build all targets marked with [*]
* vmlinux	  - Build the bare kernel
* modules	  - Build all modules
(略)
Architecture specific targets (x86):
* bzImage      - Compressed kernel image (arch/x86/boot/bzImage)
  install      - Install kernel using
                  (your) ~/bin/installkernel or
                  (distribution) /sbin/installkernel or
                  install to $(INSTALL_PATH) and run lilo
(略)
Execute "make" or "make all" to build all targets marked with [*]
For further info see the ./README file
例えば私の環境で以下のように3.10.13のソースからビルドしてみたところ、以下のようにカーネルイメージが作成されています。
$ make allnoconfig
(略)
$ make
scripts/kconfig/conf --silentoldconfig Kconfig
make[1]: `all' に対して行うべき事はありません.
  HOSTCC  arch/x86/tools/relocs_32.o
  HOSTCC  arch/x86/tools/relocs_64.o
(略)
System is 842 kB
CRC d5d86605
Kernel: arch/x86/boot/bzImage is ready  (#1)
$ find . -name vmlinux
./arch/x86/boot/compressed/vmlinux
./vmlinux
$ ls -l ./arch/x86/boot/compressed/vmlinux
-rwxrwxr-x. 1 arashi1977 arashi1977 868840 10月 10 10:17 ./arch/x86/boot/compressed/vmlinux
$ ls -l vmlinux
-rwxrwxr-x. 1 arashi1977 arashi1977 2086702 10月 10 10:17 vmlinux
$ ls -l arch/x86/boot/bzImage
-rw-rw-r--. 1 arashi1977 arashi1977 876592 10月 10 10:17 arch/x86/boot/bzImage
また、上記のmake helpの結果から「make installするとディストリビューションが提供している/sbin/installkernelを使ってカーネルをインストールする」とありますので、CentOS7とUbuntu14.04LTSで/sbin/installkernelが存在するのか確認したらちゃんとあって、以下の通りbzImageをバージョン番号付きの名前にリネームして配置するようになってます。(cpをリネームというのかと言われると辛いですが、bzImageと違う名前に変えて配置しているので、間違いではないと個人的には思います)
CentOS7:
$ ls /sbin/installkernel
/sbin/installkernel
$ cat /sbin/installkernel
(略)
cat $BOOTIMAGE > $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION

Ubuntu14.04:
$ ls /sbin/installkernel
/sbin/installkernel
$ cat /sbin/installkernel
(略)
updatever $img_dest "$img"
なので、一般的には選択肢の通りの
引用:
・バージョンがファイル名に付くようカーネルイメージ等をリネームする
は、間違っていないと思います。

ちなみに「一般的には」といったのは、「/sbin/installkernelを用意していない環境ではそうだと言い切れない」というのがあるからです。この場合は古いliloを使った環境での処理が行われるのですが、今時lilo使うのか?というのもありまして。
※こないだliloの開発ヤメるぜってアナウンスもありましたしね。

そういったことも踏まえて、この選択肢は別におかしくないんじゃないかなーと思ったりします。

投稿ツリー

  >フォーラム検索へ


Copyright (c) 2020 Ping-t All rights reserved.