[窍门]内核引导参数加上fastboot会让开机速度稍微变快一些(顺便带上了我自己的理解,不对望指正)
我只在我正在用的Debian上测试过,其它的发行版不确定是否有效
好像加上这个参数后作用就是避免在initrd阶段fsck(或者还有其它作用吗?如果有的话望指正,多谢)
但我搜"debian fastboot"出来一堆安卓
用gunzip和cpio解压我用的debian的initrd文件,grep发现里面有相应的脚本
貌似应该是发行版自己弄得initrd脚本来解析内核传入的参数
[窍门]内核引导参数加上fastboot会让开机速度稍微变快一些(顺便带上了我自己的理解,不对望指正)
-
- 帖子: 2284
- 注册时间: 2013-05-26 6:58
- 系统: Debian 9
-
- 论坛版主
- 帖子: 18279
- 注册时间: 2009-08-04 16:33
-
- 帖子: 2284
- 注册时间: 2013-05-26 6:58
- 系统: Debian 9
Re: [窍门]内核引导参数加上fastboot会让开机速度稍微变快一些(顺便带上了我自己的理解,不对望指正)
感谢回复.poloshiao 写了:http://www.linuxquestions.org/questions ... 175463994/
what is fastboot option
一个不同的链接供参考:
http://unixadminguide.blogspot.com/2013 ... linux.html
这个链接里说'fastboot'可禁用启动时的fsck
-
- 论坛版主
- 帖子: 18279
- 注册时间: 2009-08-04 16:33
Re: [窍门]内核引导参数加上fastboot会让开机速度稍微变快一些(顺便带上了我自己的理解,不对望指正)
http://unixadminguide.blogspot.tw/2013/ ... linux.html这个链接里说'fastboot'可禁用启动时的fsck
-f Skip fsck on reboot.
比較精準的說法是跳過或省略 fsck 程序 不是禁用
補充說明
最近 Server 從 Ubuntu 14.04 升級到 Ubuntu 16.04 剛好用到 fastboot 核心參數 為的就是跳過每次重開機都會執行的 fsck 程序 (在 /etc/fstab 的設定值 1 好像無效 原因待查)
-
- 帖子: 2284
- 注册时间: 2013-05-26 6:58
- 系统: Debian 9
Re: [窍门]内核引导参数加上fastboot会让开机速度稍微变快一些(顺便带上了我自己的理解,不对望指正)
本来想早点回复您,但当时感觉状态不是很好poloshiao 写了:http://unixadminguide.blogspot.tw/2013/ ... linux.html这个链接里说'fastboot'可禁用启动时的fsck
-f Skip fsck on reboot.
比較精準的說法是跳過或省略 fsck 程序 不是禁用
補充說明
最近 Server 從 Ubuntu 14.04 升級到 Ubuntu 16.04 剛好用到 fastboot 核心參數 為的就是跳過每次重開機都會執行的 fsck 程序 (在 /etc/fstab 的設定值 1 好像無效 原因待查)
现在感觉状态也还不是很好,回帖可能写的乱七八糟,见笑,回头我状态好了再检查检查.
具体原因我也还没弄清楚原因待查
但好像还是跟initrd文件有关
initrd里的"/init"脚本里面是先解析"/proc/cmdline"
碰到fastboot选项就将名为"fastboot"的环境变量设置为"y"
然后执行其它脚本
具体流程和脚本之间的层级结构仍没有弄清楚
但grep整个initrd的目录,会发现有"./scripts/functions"如果检测到["$fastboot" = "y"]就会跳过检测
所以猜测是由于先将变量fastboot设置为"y"导致检测被跳过
好像fstab的解析也是在initrd完成的,但解析的流程我还是没看明白
"./scripts/functions"中的一段貌似解析fstab的代码
代码: 全选
# Find a specific fstab entry
# $1=mountpoint
# $2=fstype (optional)
# returns 0 on success, 1 on failure (not found or no fstab)
read_fstab_entry() {
# Not found by default.
found=1
for file in ${rootmnt}/etc/fstab; do
if [ -f "$file" ]; then
while read MNT_FSNAME MNT_DIR MNT_TYPE MNT_OPTS MNT_FREQ MNT_PASS MNT_JUNK; do
case "$MNT_FSNAME" in
""|\#*)
continue;
;;
esac
if [ "$MNT_DIR" = "$1" ]; then
if [ -n "$2" ]; then
[ "$MNT_TYPE" = "$2" ] || continue;
fi
found=0
break 2
fi
done < "$file"
fi
done
return $found
}