私が見つけることができる最も近い質問はこれですが、それでも私が必要とするものとはかなり異なります。GRUBのインストールに失敗しました
このコンテンツを作成するために行った正確な設定と手順
本のバージョン7.2を使用してLinux From Scratchプロジェクトを構築しようとしています。私はプロセスのすべてのステップに従い、すべての可能なテストを実行し、ビルド後にすべてが正常に機能することを確認しました。私がしなければならなかった最大の変更はパーティショニングでした。 /dev/sda1(/へ)、/dev/sda2(/homeへ)、/dev/sda3(スワップへ)、/dev/sdb1(/sourceへ)があります。コンパイル中)。
VirtualBox内の空のハードドライブにインストールを実行するために、LiveCDをホストオペレーティングシステムとして使用しています。だから最後まで問題はほとんどありませんでした。カーネルをコンパイルするためにどのオプションを選択すべきかはあまり具体的ではなかったので、変更するとすぐにデフォルトオプションを選択しました。 "デバイスドライバ--->一般ドライバオプション---">メンテナンスa"が確認されました。devtmpfsファイルシステムが/ dev"にマウントされました。
GRUB設定の残りの指示に従うと、再起動時に起動プロセスが次の出力で停止します。
ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
ata3.00: ATA-6: VBOX HARDDISK, 1.0, max UDMA/133
ata3.00: 33554432 sectors, multi 128: LBA48 NCQ (depth 31/32)
ata3.00: configured for UDMA/133
scsi 2:0:0:0: Direct-Access ATA VBOX HARDDISK 1.0 PQ: 0 ANSI: 5
scsi 4:0:0:0: CD-ROM VBOX CD-ROM 1.0 PQ: 0 ANSI: 5
List of all partitions:
No filesystem could mount root, tried:
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
Pid: 1, comm: swapper/0 Not tainted 3.5.2 #1
Call Trace:
? panic
? mount_block_root
? xen_write_msr_safe
? mount_root
? prepare_namespace
? kernel_init
? start_kernel
? kernel_thread_helper
atkbd serio0: Spurious ACK on isa0060/serio0. Some program might be trying to access hardware directly.
だから最初にこのメッセージを受け取ったとき、私はそれがカーネルに関連している可能性があると思いました、そしておそらく私が何をすべきかを選ばなかったかもしれません。インターネット検索を行った後、「SATA_SIL」が有効になっていることを確認する必要があることがわかりました。また、VirtualBoxで実行されているカーネルに対して有効にする必要があるカーネルオプションについて詳しく説明するWebサイトを見つけました(http://en.gentoo-wiki.com/wiki/Virtualbox_Guest)。その後、カーネルをコンパイルする前に保存した状態にシステムを復元し、SATA_SILでそのWebサイトで指定されたオプションを使用して再コンパイルしました。
しかし、長いカーネルのコンパイル後、私は本からコマンドを実行しましたgrub-install /dev/sda
。しかし、今回はGRUBがインストールされておらず、代わりに次のエラーが返されました。
Path to `/boot/grub' is not readable by GRUB on boot. Installation is impossible. Aborting.
私の最初の考えは、ファイル権限に関連していたということでした(「読めない」がファイル権限のように聞こえるからです)。だから確認するために/bootフォルダを(再帰的に)777に設定しました。まだ成功していません。その後、いくつかのインターネット検索を実行しましたが、実際に意味のある結果を返しませんでした。
そこで、次に同じ設定を使用し、そこからカーネルを再コンパイルして動作しますが、起動できないGRUBバージョンにシステムを復元しました(/dev/sdb1に十分な空き容量がないため、新しいハードドライブ/dev/sdcを追加する必要があります)しました)。新しいオプションでカーネルをコンパイルするには、カーネルを使用してください。別の長いコンパイル後にカーネルをインストールして再起動しましたが、私と同じエラーダンプが発生しました。
主な問題
だから今助けが必要だと思います。誰かがこのブートエラーおよび/またはGRUBインストールパスエラーを克服する方法についてのアイデアがあれば良いでしょう!
追加情報
私のすべてのソフトウェアはまさにLFS 7.2バージョンです。完全なリストはここにあります:http://pastebin.com/TiJBhbce
以下は、コンピュータ上のすべてのドライブの構造と設定の完全なリストです:root:〜#fdisk -l
Disk /dev/sda: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders, total 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xeeeb9d91
Device Boot Start End Blocks Id System
/dev/sda1 2048 6293503 3145728 83 Linux
/dev/sda2 6293504 6817791 262144 83 Linux
/dev/sda3 6817792 8388607 785408 83 Linux
Disk /dev/sdc: 17.2 GB, 17179869184 bytes
171 heads, 2 sectors/track, 98112 cylinders, total 33554432 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x4c41c1df
Device Boot Start End Blocks Id System
/dev/sdc1 2048 33554431 16776192 83 Linux
Disk /dev/sdb: 4294 MB, 4294967296 bytes
43 heads, 32 sectors/track, 6096 cylinders, total 8388608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xd3de256f
Device Boot Start End Blocks Id System
/dev/sdb1 2048 8388607 4193280 83 Linux
再起動後に/で起動する必要があるドライブは次のとおりです。 /dev/sda1の内容は次のとおりです。
drwxr-xr-x 24 root root 4096 Feb 17 20:46 .
drwxr-xr-x 3 root root 60 Feb 17 22:46 ..
drwxr-xr-x 2 root root 4096 Feb 17 13:11 bin
drwxr-xr-x 3 root root 4096 Feb 17 16:00 boot
drwxr-xr-x 2 root root 4096 Feb 17 20:46 build
drwxr-xr-x 2 root root 4096 Feb 16 20:06 dev
drwxr-xr-x 12 root root 4096 Feb 17 15:52 etc
drwxr-xr-x 2 root root 4096 Feb 16 13:11 home
drwxr-xr-x 7 root root 4096 Feb 17 22:11 lib
drwx------ 2 root root 16384 Feb 16 13:09 lost+found
drwxr-xr-x 4 root root 4096 Feb 16 20:24 media
drwxr-xr-x 2 root root 4096 Feb 16 20:24 mnt
drwxr-xr-x 2 root root 4096 Feb 16 20:24 opt
drwxr-xr-x 2 root root 4096 Feb 16 20:06 proc
drwxr-x--- 3 root root 4096 Feb 17 22:14 root
drwxr-xr-x 3 root root 4096 Feb 17 09:38 run
drwxr-xr-x 2 root root 4096 Feb 17 14:36 sbin
drwxr-xr-x 2 root root 4096 Feb 16 13:11 sources
drwxr-xr-x 2 root root 4096 Feb 16 20:24 srv
drwxr-xr-x 2 root root 4096 Feb 16 20:06 sys
drwxrwxrwt 3 root root 20480 Feb 17 22:12 tmp
drwxr-xr-x 13 root root 4096 Feb 16 18:51 tools
drwxr-xr-x 9 root root 4096 Feb 16 20:24 usr
drwxr-xr-x 11 root root 4096 Feb 16 23:26 var
答え1
LFSを完了できましたが、GRUBで指定されたエラーが発生する理由は、すべてが正しくインストールされていないためだと思います。このスクリプトは必要に応じてすべてをインストールする必要があります。
export LFS=/mnt/lfs
mkdir -p $LFS
mount -v -t ext4 /dev/sda1 $LFS
mount -v -t ext4 /dev/sda2 $LFS/home
mount -v -t ext4 /dev/sdb1 $LFS/sources
/sbin/swapon -v /dev/sda3
mount -v -t tmpfs -o size=20m tmpfs /tmp
mount -v --bind /dev $LFS/dev
mount -vt devpts devpts $LFS/dev/pts
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
chroot "$LFS" /tools/bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='\u:\w\$ ' \
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/tools/bin \
/tools/bin/bash --login +h
起動できないエラーは、カーネルのコンパイルによって発生します。私のハードドライブはext4を使用しており、機能するにはカーネルにコンパイルする必要があります。私が使用する必要があるカーネル設定は次のとおりです。
Device Drivers --->
Generic Driver Options -->
[*] Maintain a devtmpfs filesystem to mount at /dev
File systems --->
<*> The Extended 4 (ext4) filesystem
[*] Use ext4 for ext2/ext3 file systems
[*] Ext4 extended attributes
[*] Ext4 POSIX Access Control Lists
[*] Ext4 Security Labels