Linuxカーネル(3.8.1)をソースからFedoraディストリビューションにインストールしようとしています。カーネルはバニラのものです。私はカーネルのビルド手順に厳密に従います。
make menuconfig
make
Sudo make modules_install install
Sudo grub2-mkconfig -o /boot/grub2/grub.cfg
/boot
のすべてが問題ないようです。新しくコンパイルされたカーネルのSystem.map
、initramfs
、vmlinuz
を確認できます。 vmlinuz
リンクはvmlinuz-3.8.1
を指します。 Ubuntuカーネルを含め、他にも複数のカーネルがインストールされています。 grub2はそれらすべてを認識し、それぞれを起動できます。
再起動すると、すべてのカーネルがメニューエントリとして表示され、3.8.1を選択します。
次に、次のメッセージが表示されます。
early console in decompress_kernel
decompressing Linux... parsing ELF ... done
Booting the kernel.
[1.687084] systemd [1]:failed to mount /dev:no such device
[1.687524] systemd [1]:failed to mount /dev:no such device
解決:
投稿された3つの応答すべてがソリューションを提供します。 CONFIG_DEVTMPFSが実際に問題の原因でした。作業中のカーネルの/ boot/config-…を.configとしてソースツリーのルートにコピーし、上記のカーネルを構築するための標準コマンドを実行しました。
機能するカーネル構成を取得する最も簡単な方法は、Fedoraの.config
をコピーしてから、make oldconfig
を実行して構成することです。構成は/boot/config-*
にあります
これらのオプション sでカーネルを設定する必要があります:
Linux kernel >= 3.0
CONFIG_DEVTMPFS
CONFIG_CGROUPS (it's OK to disable all controllers)
CONFIG_INOTIFY_USER
CONFIG_SIGNALFD
CONFIG_TIMERFD
CONFIG_EPOLL
CONFIG_NET
CONFIG_SYSFS
CONFIG_PROC_FS
CONFIG_FHANDLE (libudev, mount and bind mount handling)
Linux kernel >= 3.8 for Smack support
Udev will fail to work with the legacy layout:
CONFIG_SYSFS_DEPRECATED=n
Legacy hotplug slows down the system and confuses udev:
CONFIG_UEVENT_HELPER_PATH=""
Userspace firmware loading is deprecated, will go away, and
sometimes causes problems:
CONFIG_FW_LOADER_USER_HELPER=n
Some udev rules and virtualization detection relies on it:
CONFIG_DMIID
Support for some SCSI devices serial number retrieval, to
create additional symlinks in /dev/disk/ and /dev/tape:
CONFIG_BLK_DEV_BSG
Optional but strongly recommended:
CONFIG_IPV6
CONFIG_AUTOFS4_FS
CONFIG_TMPFS_POSIX_ACL
CONFIG_TMPFS_XATTR
CONFIG_SECCOMP
For systemd-bootchart, several proc debug interfaces are required:
CONFIG_SCHEDSTATS
CONFIG_SCHED_DEBUG
For UEFI systems:
CONFIG_EFI_VARS
CONFIG_EFI_PARTITION
Note that kernel auditing is broken when used with systemd's
container code. When using systemd in conjunction with
containers, please make sure to either turn off auditing at
runtime using the kernel command line option "audit=0", or
turn it off at kernel compile time using:
CONFIG_AUDIT=n
同様の問題 systemdを実行しているカスタムシステムで見ると、カーネル構成で「CONFIG_DEVTMPFS」が選択されていないことが原因である可能性があります(これが最初にあることに注意してください sciurusのリスト = systemdを実行するためのカーネル要件の)。
これを修正する方法を理解するには、make menuconfig
を起動し、検索機能(/
を押す)を使用して「DEVTMPFS」を探します。最初のヒットは:
Symbol: DEVTMPFS [=y]
Type : boolean
Prompt: Maintain a devtmpfs filesystem to mount at /dev
Location:
-> Device Drivers
(1) -> Generic Driver Options
低く見よ、Device Drivers-> Generic Driver Optionsにそのようなオプションがあります。
フォンブランドが言うように、あなたは今持っているものと一致する設定から始めるのが一番です。これはおそらく/proc/config.gz
としてgzip圧縮されて見つかります。それをgunzip -c config.gz > .config
にコピーし、そのファイルをソースツリーの予備の.config
として使用します(詳細は ステップ#2はこちら )。