隨手記一下今天折騰 Gentoo 遇到的兩個問題。
Couldn't mount as ext3 due to feature incompatibilities
系統啟動完成后,在 dmesg 中看到一條報錯信息:
EXT4-fs (sda4): couldn't mount as ext3 due to feature incompatibilities
雖然系統最終成功啟動,root 分區(ext4)也成功掛載,但這條紅色的報錯信息有些刺眼。
從網上找到了這樣一篇文章:Filesystem with huge files cannot be mounted read-write without CONFIG_LBDAF 。原來開啟了 huge_file
屬性的文件系統無法被內核正常掛載,而 makefs.ext4 實用工具會自動為文件系統打開這個屬性。
解決辦法有兩個。第一個是使用下面的命令關閉該屬性:
$ tune2fs -O ^huge_file /dev/sda4 fsck /dev/sda4
第二個是修改內核啟動的命令行參數,強制指定內核以 ext4 格式掛載文件系統。將下面的內容添加到 /etc/default/grub
文件中:
GRUB_CMDLINE_LINUX_DEFAULT="rootfstype=ext4"
更新 Grub:
$ grub-mkconfig -o /boot/grub/grub.cfg
Hibernation image not present or could not be loaded
這個錯誤也是從 dmesg 中報出來的:
PM: Hibernation image not present or could not be loaded
Hibernation 是電源管理模塊中的一個特性,可以顯著地降低設備的能耗。Hibernation特性需要交換分區的參與,那么這個錯誤的產生是和電源管理模塊找不到交換分區有關嗎?
在 Superuser 上發現有人遇到過 相同的問題。解決辦法是將交換分區的 UUID 添加到內核啟動的命令行參數中。
首先,使用下面的命令找到交換分區的 UUID(可能需要 root 權限):
$ blkid | grep sda3
/dev/sda3: UUID="edbc48e5-8a64-42cb-84a0-631196cc7aaa" TYPE="swap"
接著像第一個問題中描述的那樣修改 /etc/default/grub
文件:
GRUB_CMDLINE_LINUX_DEFAULT="... resume=/dev/disk/by-uuid/edbc48e5-8a64-42cb-84a0-631196cc7aaa"
然后更新 Grub。系統重新啟動之后,這兩個報錯就不見了。