每次通過GRUB啟動Linux的時候,都會有兩個選項,一個是initramfs-linux.img,另一個是initramfs-linux-fallback.img。我一直不知道fallback有什么特殊功能,直到我看到了ArchWiki上的mkinitcpio條目。
每次升級內核,mkinitcpio都會默認創建兩個內存盤鏡像:默認鏡像/boot/initramfs-linux.img和fallback鏡像/boot/initramfs-linux-fallback.img。fallback鏡像和默認鏡像只有一個區別,就是創建時跳過了autodetect鈎子擴展,因而它包含更多的內核模塊。autodetect擴展會探測硬件信息,針對硬件向鏡像添加需要的模塊,因此縮小了鏡像。
原來只是比普通的initramfs包含了更多的驅動,難怪我更換設備之后只能通過fallback啟動。
# david @ David-PC in ~ [2:49:51]
$ ls -alh /boot
總用量 49M
drwxr-xr-x 1 root root 164 5月 29 10:55 .
drwxr-xr-x 1 root root 122 5月 29 09:43 ..
drwxr-xr-x 3 root root 16K 1月 1 1970 efi
drwxr-xr-x 1 root root 98 5月 29 23:39 grub
-rw-r--r-- 1 root root 30M 5月 29 10:53 initramfs-linux-fallback.img
-rw-r--r-- 1 root root 9.2M 5月 29 10:52 initramfs-linux.img
-rw-r--r-- 1 root root 3.0M 5月 22 03:13 intel-ucode.img
-rw-r--r-- 1 root root 6.5M 5月 29 09:45 vmlinuz-linux
體積也有明顯區別。
