从按下电源开关到bash提示符 2.硬件

本文详细介绍了个人电脑(PC)从开机到启动操作系统的整个过程。包括硬件自检、BIOS加载、寻找引导扇区等关键步骤,并提供了实际操作的建议。

2. 硬件

当你打开电脑,它会自动检测是否一切是否正常。这个过程被称为“启动自检”然后位于ROM中的BIOS引导装入程序会找到引导扇区。一个引导扇区是盘中的第一个段,它带有一个能载入操作系统的程序。引导扇区有神奇的地方被标记为0xAA55 = 43603,就在第0x1FE = 510字节。这是一个段的最后两个字节,硬件就是靠它们来区别这个段是否为引导扇区。

引导程序有一个可用于寻找启动扇区位置的表。我的老机器会先寻找软驱,然后主硬盘。很多现代计算机可以在光盘上寻找启动扇区,如果找到了一 个启动扇区,引导程序会把它读入内存然后把控制权交给启动扇区里的程序。在一个标准linux系统中,这个程序就是LILO的第一阶段启动程序,有很多方 法来进行启动时的设置,更多细节请参阅LILO的用户手册。

很明显,我们关于PC硬件功能有很多好讲,但这里不适合讨论,你可以参考各种关于PC硬件的书籍。

2.1 配置

机器在CMOS里面储存了很多自身信息。包括硬盘和内存的信息,BIOS里的程序可以让你更改这些设置。看看你机器启动时的屏幕信息就能知道如何进入BIOS程序,在我机器上,在启动操作系统前按下delete

2.2 练习

了解PC硬件的很好的方法是在二手市场里攒台机器。在386配置下就可以跑linux,而且不会花费太多。

下载并且做一张Unios的启动盘,这只是一个可启动的“Hello World!”程序,总共一百多行汇编代码。如果用可以理解GNU汇编的软件打开会更易读。

这里有篇指导文章“自己动手”在Roll Your Own 如果你想寻求真正的挑战。

用16进制编辑器打开unios的映像盘,这个映像有512字节长,正好是一段。找到那个神奇的数字0xAA55,找张可引导的盘,做同样的工作。你可以用dd命令来把引导区拷贝成文件:dd if=/dev/fd0 of=boot.sector 注意!正确的命令格式。

看看LILO引导程序的源代码

2.3 More Information

  • The Unix and Internet Fundamentals HOWTO by Eric S. Raymond, 特别是第三部分, What happens when you switch on a computer?
  • The LILO User's Guide 的第一章给出了关于PC硬盘分区和启动方面的描述。请看LILO 的网址.
  • The NEW Peter Norton Programmer's Guide to the IBM PC & PS/2, by Peter Norton and Richard Wilton, Microsoft Press 1988 这书很好,不过我现在买不起。
  • 许多关于升级电脑的书。
 
### 服务器长按电源按钮无法关机的解决方案 服务器在蓝屏或异常状态下可能无法通过正常途径关机,此时需要采取特定措施解决问题。以下是详细的解决方法: #### 硬件层面的检查与修复 硬件故障可能导致服务器无法响应关机指令。以下是一些关键点: - 检查电源供应单元(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 ``` #### 其他注意事项 如果上述方法均无效,建议联系硬件供应商或专业技术人员进行进一步诊断。此外,定期更新操作系统和驱动程序有助于减少类似问题的发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值