问题:Ubuntu启动显示:the root filesystem on /dev requires a manual fsck
原因:一般是断电等情况导致磁盘检测不能通过,或其它非正常关机导致。
解决办法:
./dev/sda1 上的根文件系统需要手动 fsck(即,不带 -a 或 -p 选项)
我们直接在 (initramfs) 提示后面输入检查。
(initramfs) fsck /dev/sda5
后面有一些确认,全部 y 确认。做完重启,就可以了。
知识补充:Shell内置命令——Built-in commands
【1】定义:
Linux系统为了提高系统运行效率,将经常使用的轻量的命令在系统启动时一并加载到内存中供Shell随时调用,这部分命令称为内部命令,如 cd、exit、echo等
【2】特点:
内置命令构建在Shell程序中,运行时不必创建多余的进程,要比外部命令执行快得多。内部命令写在bash源码里面,并不单独以磁盘文件的形式存在于磁盘上。
外部命令的实体并不包含在shell中,但是其命令执行过程是由shell程序控制的。在系统加载时并不随系统一起被加载到内存中,而是在需要时才将其调用内存。当外部命令被调用时,首先 Shell 会创建子进程,然后在子进程当中运行该程序。
【用type命令区分内外部命令】
语法:type [参数] [命令]
即 type [-a | -t | -p] name 或 type [-all | -type | -path] name
参数定义:
- 无参数:当没有参数的时候,type会列出此命令是内部命令还是外部命令。
- -t:-type,根据name返回该命令类型,如下表格显示,有 lias, keyword, builtin等。
- -a:-all,在PATH中查找并显示所有包含name的可执行文件路径;当'-p'参数没有同时给出时,如果在别名、关键字,函数,内建的信息中存在name,则一并显示。
- -p:-path,只返回外部命令的信息,相当于which命令,找不到则不显示。