另 外 , 如 果 每 次 都 想 要 让
windows
变 成 默 认 的 开 机 选 项 , 那 么 在
/etc/default/grub
当 中 设 定 好
GRUB_DEFAULT=win7
然后再次
grub2
-
mkconfig
这样即可啦!不要去算
menuentry
的顺序喔!透过
--
id
内容来处理即可!
19.3.4 initramfs
的重要性与½立新
initramfs
文件
我们在本章稍早之前『
boot loader
kernel
载入
』的地方已经提到过
initramfs
这玩意儿,他的目
的在于提供开机过程中所需要的最重要核心模块,以让系统开机过程可以顺利完成。
会需要
initramfs
的原因,是因为核心模块放置于
/lib/modules/$(uname -r)/kernel/
当中,
这些模块必须要根
目录
(/)
被挂载时才能够被读取。但是如果核心本身不具备磁盘的驱动程序时,
当然无法挂载根目
录,也就没有办法取得驱动程序,因此造成两难的地步。
initramfs
可以½
/lib/modules/....
内的『开机过程当中一定需要的模块』包成一个文件
(
檔名就是
initramfs)
然后在开机时透过主机的
INT 13
硬件功能½该文件读出来½压缩,并且
initramfs
在内
存内会仿真成为根目录,
由于此虚拟文件系统
(Initial RAM Disk)
主要包含磁盘与文件系统的模块,
因此我们的核心最后就能够认识实际的磁盘,
那就能够½行实际根目录的挂载啦!所以说:『
initramfs
内所包含的模块大多是与开机过程有关,而主要以文件系统及硬盘模块
(
usb, SCSI
)
为主
』的
啦!
一般来说,需要
initramfs
的时刻为:
.
根目录所在磁盘为
SATA
USB
SCSI
等连½½口;
.
根目录所在文件系统为
LVM, RAID
等特殊格式;
.
根目录所在文件系统为非传统
Linux
认识的文件系统时;
.
其他必须要在核心加载时提供的模块。
Tips
之前鸟哥忽略
initrd
这个文件的重要性,是因为鸟哥很穷
... ^_^
。因为鸟哥的
Linux
机都是½早期的硬件,
使用的是
IDE
½口的硬盘,而且并没有使用
LVM
等特殊格式的文件系统,而
Linux
心本身就认识
IDE
½口的磁盘,
因此不需要
initramfs
也可以顺利开机完成的。自从
SATA
硬盘流行起来后,没
initramfs
就没办法开机了!
因为
SATA
硬盘使用的是
SCSI
模块来驱动的,而
Linux
默认½
SCSI
功能编译
成为模块
....
一般来说,各
distribution
提供的核心都会附上
initramfs
文件,但如果妳有特殊需要所以想重制
initramfs
文件的话,
可以使用
dracut / mkinitrd
来处理的。这个文件的处理方式很简单,
man dracut
man mkinitrd
就知道了!
^_^
CentOS 7
应该要使用
dracut
才对,不过
mkinitrd
还是有保留
下来,两者随便你玩!鸟哥这里主要是½绍
dracut
就是了!
[root@study ~]#
dracut [
-
fv] [
--
add
-
drivers
列表
] i
nitramfs
檔名
核心版本
选项
参数