%E3%81%AB%E3%83%AB%E3%83%BC%E3%83%88%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%92%E3%83%9E%E3%82%A6%E3%83%B3%E3%83%88%E3%81%A7%E3%81%8D%E3%81%BE%E3%81%9B%E3%82%93.png)
私はスペイン語を話すので、英語が下手で申し訳ありません。
私はSlackwareカーネルのコンパイル方法を学んでいるので、linux-3.2.7.tar.bz2をダウンロードしました。http://www.kernel.org
条件:
- VMware 仮想マシンにインストールされた Slackware。
- ホスト OS は Windows 7 です。
- Slackware ルートファイルシステム: ext4
- Slackware 旧カーネル: 2.6.37.6
- Slackware パーティション: スワップ用の sda1、カーネル用の sda2。
基本的に、次の手順に従いました。
#cd /usr/src
#tar jvxf linux-3.2.2.tar.bz2
#mv /usr/src/linux /usr/src/linux.old
#ln -s /usr/src/linux-3.2.2 /usr/src/linux
#cd linux-3.2.2
#make mrproper
#cp /usr/src/linux-2.6.37.6/.config /usr/src/linux-3.2.2/.config
#make menuconfig
代替構成ファイルをロードします: .config INCLUDED (オプション Y):
ATA/ATAPI/MFM/RLL support (DEPRECATED) (at Device drivers)
SCSI generic support (at Device drivers)
second extended support (at filesystems)
ext3 journaling (all)
ext4 (all)
ext4 (at filesystems)
JBD (ext4) debuggin support
JBD2 (ext4) debugging support
ReiserFS support
XFS filesystem support
"compile kernel with debug info" (at kernel hacking)
make dep
make clean
make bzImage
make modules
make modules_install
mv /boot/System.map /boot/System.map.old
cp /usr/src/linux/System.map /boot/System.map-3.2.2
ln -s /boot/System.map-3.2.2 /boot/System.map
mv /boot/vmlinuz /boot/vmlinuz.old
cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-3.2.2
ln -s /boot/vmlinuz-3.2.2 /boot/vmlinuz
nano -w /etc/lilo.conf
次の行を追加しました:
image=/boot/vmlinuz.old
label = oldSlack
root = /dev/sda2
read-only
#lilo
#lilo -q
#shutdown -r now
カーネル 3.2.2 の起動時に、次の表示が停止します。
VFS: Cannot open root device "802" or unknown-block(8,2)
Please append a correct "root=" boot option
Kernel Panic - not syncing: VFS: Unable to mount root fs on unknown-bloc(8,2)
カーネルを何度も再コンパイルしましたが、何時間もコンパイルするといつもこのメッセージが表示されるので、このメッセージは嫌いです。 :(
私が何を間違っているのか、なぜそのエラーが起こっているのか理解するのを手伝ってくれる人はいませんか?
答え1
注: 私は Linux 3 に精通していません。
今のところ、間違ったパスが lilo コマンドの実行中にこの問題を引き起こしたと推測できます。lilo は mbr を別の場所にインストールしました。
1 つ目: カーネルの再コンパイルをやめてください。起動すら開始されないと思います。
2 番目: ブート ファイルのパスと、lilo を実行するときのパスを再度確認します。lilo -r スイッチについて読む
system=sda2
mbr=sda
lilo -F -r /mnt/$system -b /dev/$mbr -C /etc/lilo.conf
出力を表示:
/sbin/sfdisk -d /dev/sda
ls -all /boot/
lilo
dmesg
L スイッチを使用することをお勧めします:
cp -L /usr/src/linux/System.map /boot/System.map-3.2.2
cp -L /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-3.2.2
Linux はボットですか?