从按下电源开关到bash提示符 7.文件系统

本文深入探讨Linux中的文件系统概念,包括文件系统的基本结构、如何通过命令进行管理和维护,以及Linux如何利用虚拟文件系统抽象化不同类型的文件系统。此外,还介绍了/proc文件系统的独特之处。

7. 文件系统

在这一部分,我会把“文件系统”这个词表达两种不同的意思。一种意思表示你硬盘分区和其他设备的“文件系统”,另外一种意思是Linux系统展现在你面前的“文件系统”。在Linux里,你“mount”(安装)一个磁盘文件系统到一个广义的文件系统。

在前面的章节可,我提到init脚本检测并安装文件系统,完成这些工作的命令分别是fsck和mount。

一个硬盘就是一个允许你写入1和0的大空间。文件系统在上面建立一些结构,让他看起来像目录包含目录,目录包含文件。每个文件都用一个 inode(结点)来表示。结点包含了文件所有者,创建时间,内容存放的位置等信息,目录用结点来表示。如果系统想读取 /home/greg/bigboobs.jpeg,他会先在“超级块”中找到/目录,然后再寻找home目录的结点,然后是greg目录的结点,最后是 bigboobs.jpeg的节点,从中找到内容存放在硬盘什么地方。

如果在文件末尾加上一些数据,可能发生的是——数据在inode更新前写入,或者相反。如果这时断电,文件系统就会被破坏,fsck会尝试检测并修复这类错误。

mount命令把磁盘上的文件系统读入,并把它添加进你在系统中见到的目录树。通常,内核把根文件系统以只读方式安装。mount会在fsck检查完系统后把它们以可读可写方式重新安装。

Linux也支持其他文件系统:msdos,vfat,minix等等。各个文件系统的复杂细节被虚拟文件系统(VFS)抽象化了。我不会对此进行更详细的描述。这里有关于它的讨论(看The Linux Kernel 部分)

/proc是个完全不同的文件系统,他实际代表内核中的东西,每个运行的进程都会有一个目录,目录名就是进程号,那里也有文件代表中断,内存信息,通过它们来告诉你系统运行状况。通过探索/proc你会学到很多东西。

7.1 配制

有许多参数可以来控制mke3fs命令,它是用来建立ext3文件系统的。这些参数可以控制每个块的大小,结点的个数等等,在mke2fs的帮助页里面可以找到相关细节。

哪些安装和安装到什么位置是由/etc/fstab文件控制的,它也有个帮助页。

7.2 练习

建立一个很小的文件系统,并用16进制编辑器打开,找到结点、超级块和文件内容。

我认为有以图形方式观察文件系统的软件,找一个试试,如果你找到了请告诉我个地址。

看看ext2文件系统在内核中的代码。

7.3 更多信息

  • “The Linux Kernel”的第九章对文件系统有很好的描述,你可以在澳大利亚的LDP镜像上找到它。
  • mount命令是linux功能包中的一个,这里有个它的连接Building a Minimal Linux System from Source Code
  • mount,fatab,fsck,mke2fs和proc的帮助页。
  • linux源代码中的Documentation/proc.txt 解释了/proc文件系统。
  • EXT2文件系统功能包ext2fsprogs 主页 ext2fsprogs 澳洲镜像, 那里也有其他关于Ext2fs总体概括的文章,不过已经过时,而且没有“The Linux Kernel”第九章易读。
  • Unix文件系统标准另外一个链接。他描述了Unix文件系统的布局和原理,并且包含了对/bin,/sbin等目录内容的最基本要求。如果你想做一个微缩版,这是本很好的参考书。
 
### 服务器长按电源按钮无法关机的解决方案 服务器在蓝屏或异常状态下可能无法通过正常途径关机,此时需要采取特定措施解决问题。以下是详细的解决方法: #### 硬件层面的检查与修复 硬件故障可能导致服务器无法响应关机指令。以下是一些关键点: - 检查电源供应单元(PSU)是否工作正常,确保其输出电压稳定[^1]。 - 验证主板上的电源按钮连接线是否松动或接触不良。如果怀疑是硬件问题,可以尝试重新插拔相关连接线。 - 如果服务器配备独立显卡,确认显卡驱动已正确安装并更新至最新版本[^2]。 #### 操作系统层面的排查与修复 操作系统配置错误或文件损坏也可能导致无法关机。以下是处理方法: - 对于Windows服务器,使用命令提示符运行以下命令以扫描和修复系统文件: ```cmd sfc /scannow ``` 此外,检查“事件查看器”中的日志,定位可能导致问题的具体错误信息[^3]。 - 在Linux服务器中,可以通过单用户模式启动系统,并运行以下命令检查和修复文件系统: ```bash sudo fsck /dev/sda1 ``` #### 强制关机后的恢复步骤 如果服务器仍然无法正常关机,可以考虑强制关机,但需注意潜在风险: - 长按电源按钮超过4秒以强制关闭服务器。此操作可能会导致未保存的数据丢失或文件系统损坏。 - 强制关机后,建议运行磁盘检查工具以修复可能的问题。例如,在Windows中运行`chkdsk`命令,在Linux中运行`fsck`命令。 #### 使用第三方工具实现远程控制 为了减少物理干预的需求,可以考虑部署远程电源管理解决方案。例如,ESPHome PC Power Control项目提供了一种通过Home Assistant和ESP8266/ESP32微控制器板实现远程开关机的方法[^4]。这种方法不仅能够安全地执行关机操作,还支持在系统无响应时进行强制断电。 #### 配置电源管理设置 不当的电源管理设置可能导致关机失败。以下是一些调整建议: - 在Windows中,打开“控制面板” > “电源选项”,确保“按下电源按钮时”的操作设置为“关机”。 - 在Linux中,检查`/etc/default/grub`文件中的`GRUB_CMDLINE_LINUX_DEFAULT`参数,确保ACPI功能未被禁用。 ```bash # 检查GRUB配置文件 cat /etc/default/grub | grep ACPI ``` #### 其他注意事项 如果上述方法均无效,建议联系硬件供应商或专业技术人员进行进一步诊断。此外,定期更新操作系统和驱动程序有助于减少类似问题的发生。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值