TurboLinux10Desktopでカーネルの再構築を実行してみました。
結論から言うと、
kernel (hd0,0)/vmlinuz_usb root=0303
Error 13 :Invalid or unsupported executable format
というエラーが出て起動できませんでした。
このエラーが出そうな要因を教えてください。
インストール時のgrub.confには、
title turbolinux
kernel (hd0,0)/vmlinuz root=0303
initrd (hd0,0)/initrd
と書かれており、
これに従って、
title turbolinux_usb
kernel (hd0,0)/vmlinuz_usb root=0303
initrd (hd0,0)/initrd_usb
と記述しました。
vmlinuz_usb、initrd_usbは、
日付から見て今回の再構築の過程でできたであろうファイルへのシンボリックリンクです。
grub.confに書かれたもともとのvmlinuz、initrdのリンク先を見て作りました。
再構築時のパラメータの設定はmake xconfigで行い、USB関連の1項目にチェックを入れただけです。
その後のmakeのコマンドは、
http://www.atmarkit.co.jp/flinux/rensai/linuxtip …
を参考にしました。
今回のエラーは、単純に「今回のxconfigによるパラメータではOSは起動できない」という意味なのでしょうか?
make dep ~ make installの間、特にエラーは出ませんでしたが。
make xconfigを開いた時に既に多くのパラメータが設定済みに見えたので、
参考サイトにあるようにxconfigの前に./SetupKernelSource.sh i386を実行しなかったのですが、
これがまずかったのでしょうか?
今回の再構築の手順は以下の通りです。
cd /usr/src/linux
make xconfig
→設定後保存し、.configができた
make dep
make clean
make bzImage
make modules
make modules_install
make install
→/usr/src/linuxにvmlinuxができた
cp vmlinux /boot
/bootを見ると、
initrd-2.6.0.img、System.mapが今日の日付になっていた
ln -fs vmlinux vmlinuz_usb
ln -fs initrd-2.6.0.img initrd_usb
前述したようにgrub.confを書き換えて再起動→Error13
この再構築手順で間違った部分があればそれも教えてください。
No.2ベストアンサー
- 回答日時:
カーネルの再構築では起動できなくなる場合が多々あるので
旧カーネルイメージで起動できるようにしておく必要があります。
kernel-2.6系ならば、
# make xconfig
# make bzImage && make modules && make modules_install
現在のイメージを保存する
# cp -i /boot/vmlinuz /boot/vmlinuz.old
# cp -i /boot/System.map /boot/System.map.old
新しいカーネルを配置
# cp -i arch/i386/boot/bzImage /boot/vmlinuz
# cp -i System.map /boot/System.map
とし、vmlinuz と vmlinuz.old で起動するエントリを grub.conf に記述する。
cpの行の部分はmake installで同じことを行っていますが、
何回か再構築を繰り返すと起動できないイメージをvmlinuz.oldにコピーしてしまう可能性があります。
新しいカーネルを vmlinuz にコピーしたあとvmlinuz_usb にリンクして、
vmlinuzとvmlinuz_usbを記述する意味が全くわかりません。
どちらも同じものが起動するのではないでしょうか???
/usr/src/linux/vmlinux については、
/usr/src/linux/REAMDE を読んでください。
この回答への補足
System.mapも必要なんですね、これは上書きされてしまいました。
たまたま今回は起動したから助かりましたが、以降気をつけます。
>vmlinuzとvmlinuz_usbを記述する意味が全くわかりません。
申し訳ありません、記述ミスです。
実際に行った操作は、
make install
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz_sisaku
cd /boot
ln -fs vmlinuz_sisaku vmlinuz_usb
ln -fs initrd-2.6.0.img initrd_usb
で、bzImageは/bootのvmlinuzに上書きしていません。
ls -l で見ると、
vmlinuz -> vmlinuz-2.6.0
vmlinuz_usb -> vmlinuz_sisaku
と表示されます。
この後grub.confを修正しました。
インストール時に書かれていた(=起動することが確認されている)
title turbolinux
kernel (hd0,0)/vmlinuz root=0303
initrd (hd0,0)/initrd
の下に、今回作ったモノ(カーネル?)を、
title turbolinux_usb
kernel (hd0,0)/vmlinuz_usb root=0303
initrd (hd0,0)/initrd_usb
と追記しました。
ln -fs~、でリンクを張る意味はいまいちわからないのですが、
そういうものなんだろう、程度の意識で行いました。
No.1
- 回答日時:
起動するカーネルイメージが違うのでしょう。
make bzImage で作成されるカーネルイメージは、
/usr/src/linux/arch/i386/boot/bzImage
にできているはずので、
# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz
とするか、
# make install
を実行したのならば、すでに /boot/vmlinuz にコピーされていると思います。
make -n install でインストール先を確認してみてください
あとは、/dev/hda1 は /boot にマウントされているのでしょうか?
/dev/hda1 が / にマウントされている場合は、
grub.conf は、
kernel (hd0,0)/boot/vmlinuz_usb
になると思います。
回答ありがとうございます。
起動しました!
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz後、
vmlinuzへリンクを張り、それをgrub.confに書き込んだところ、起動しました。
いじった箇所はほんの一部なので変化はわかりませんが。
make -n installの意味はわかりませんでした。
man make で調べたところ「make を実行せずに内容を表示」などと書かれており、
実行したら色々表示されていましたが、多すぎて何がなんだか…。
/usr/src/linuxにてmake install後、
同ディレクトリにできたvmlinuxを使って起動できなかったのですが、
これは全く関係ないのでしょうか?
再構築の手順としては、
cd /usr/src/linux
make xconfig → .config作成
make dep
make clean
make bzImage
make modules
make modules_install
make install
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz
cd /boot
ln -fs vmlinuz vmlinuz_usb
ln -fs initrd-2.6.0.img initrd_usb
grub.conf修正、でOKということでしょうか。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux Kali Linuxで起動できない - Minimal BASH Like Line Editing 1 2022/06/03 13:14
- Windows 10 Windows10起動しない、エラー0xc0000185修復方法 2 2022/07/14 12:28
- 中古パソコン 富士通 ESPRIMO B532/G のBIOSが表示されない 3 2023/01/03 16:42
- ドライブ・ストレージ デスクトップパソコンOSについて デスクトップパソコンスペック、Inteli54460 HD4600 3 2023/04/17 01:57
- Windows 10 windows10のクリーンインストールが完了出来ない 2 2022/06/04 13:33
- その他(ソフトウェア) Makefileが実行できない 2 2022/07/28 23:49
- Android(アンドロイド) MacroDroidでUSB設定の変更がしたいです。 AQUOS SENSE4 Basic を使用し 1 2022/07/30 11:20
- システム BIOSによるUSB-HUB設定について 2 2022/03/29 09:45
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
- Mac OS El Capitanがインストールできない… 1 2023/06/16 13:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
KNOPPIXが起動しない場合の対処...
-
Linux」は有料のOSでUNIXは無料...
-
Linuxでダイナミックディスクっ...
-
画像処理でのカーネルの意味
-
『カーネルとの通信中にエラー...
-
/dev/nvme0n1p2 clean と表示さ...
-
RedHat Linux 8.0 同時セッショ...
-
OSについて調べています
-
power book G4でDVDーRにデー...
-
XNU の日本語発音を教えてください
-
Lubuntu のインストールに失敗...
-
パソコンでゲームをプレイしよ...
-
Windows2000を最新マシンにイン...
-
linux mint での無線LANが認識...
-
Raspberry Pi 3 A+ ブラウザ遅い
-
ubuntu 初期化について
-
オフラインのUbuntuにパッケー...
-
Canonのインクジェットプリンタ...
-
自分は、パソコンにAPEXを入れ...
-
システムBIOS画面をキャプチャ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パフォーマンスモニタの%Proces...
-
最近、よくOpenWall という言葉...
-
/dev/nvme0n1p2 clean と表示さ...
-
ブルースクリーンの原因が「ntk...
-
割り込み不可能?なプロセスを...
-
魔改造版Windows 2000をインス...
-
romfsってなんですか?
-
どうしてwindowsはMacと比べ動...
-
mac OSは、何のプログラミング...
-
macでカーネルのディレクトリは...
-
カーネルアップグレード後、una...
-
『カーネルとの通信中にエラー...
-
UNIXとBSDとLinuxの違いを小学...
-
Linux 32Bitと64Bitのメモリー...
-
Dockerコンテナ(centos7.9)の...
-
エラー”Illegal seek”はどんな...
-
カーネルスタック不足について
-
カーネルバッファとは何でしょうか
-
マザーボード用ドライバ
-
rdevコマンドについて
おすすめ情報