news 2026/4/6 15:43:40

Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04 系统启动与关闭详解(11)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ubuntu入门学习教程,从入门到精通,Ubuntu 22.04 系统启动与关闭详解(11)

Ubuntu 22.04 系统启动与关闭详解

1 Ubuntu 的启动过程

1.1 BIOS 阶段

计算机加电后,BIOS(基本输入输出系统)首先进行硬件自检(POST),检测CPU、内存、磁盘等关键硬件。随后BIOS根据预设的启动顺序(如U盘、硬盘、网络)查找可启动设备,并加载该设备首个扇区的主引导记录(MBR)到内存执行。

案例代码:查看BIOS启动顺序(需进入BIOS界面,无直接命令,但可通过系统日志验证):

# 查看系统最后一次启动时间,间接验证BIOS阶段完成时间 who -b # 输出示例:system boot 2025-11-29 09:00

1.2 引导程序阶段(GRUB)

MBR中的代码加载GRUB(GRand Unified Bootloader)引导程序。GRUB的配置文件位于/boot/grub/grub.cfg(自动生成,不可直接修改),其模板文件为/etc/default/grub。GRUB提供菜单供用户选择内核版本,并加载对应的内核镜像(vmlinuz)和初始内存盘(initrd)到内存。

案例代码:修改GRUB配置(如将默认启动项改为Windows):

# 1. 编辑GRUB配置模板 sudo nano /etc/default/grub # 修改以下参数(示例:将默认启动项设为第2个菜单项,即Windows) GRUB_DEFAULT=2 # 0表示首个菜单项,1表示第二个,以此类推 GRUB_TIMEOUT=10 # 菜单显示时间(秒),0表示直接启动默认项 # 2. 更新配置以生成grub.cfg sudo update-grub # 输出示例:Found linux image: /boot/vmlinuz-5.15.0-60-generic

注释

  • GRUB_DEFAULT可设为数字(菜单项索引)或菜单标题(如 “Windows Boot Manager”)。
  • 若系统为双系统,Windows菜单项通常索引为2(Ubuntu为0,高级选项为1)。

1.3 内核阶段

内核被加载后,初始化硬件设备,并挂载根文件系统。随后启动init进程(PID 1),该进程是所有系统进程的父进程。在Ubuntu 22.04中,init进程通常为systemd,它接管后续启动流程。

案例代码:查看当前内核版本和运行进程:

# 查看内核版本 uname -sr # 输出示例:Linux 5.15.0-60-generic # 检查init进程(应为systemd) ps -p 1 -o comm= # 输出示例:systemd

1.4 进入系统:运行级别与目标

systemd通过目标(target)管理系统状态,类似传统运行级别。常见目标包括:

  • graphical.target:多用户图形界面(对应运行级别5)
  • multi-user.target:多用户命令行界面(运行级别3)
  • rescue.target:救援模式(运行级别1)
  • poweroff.target:关机(运行级别0)案例代码:查看和切换目标:
# 查看当前目标 systemctl get-default # 输出示例:graphical.target # 切换到命令行模式 sudo systemctl isolate multi-user.target # 设置默认启动到命令行 sudo systemctl set-default multi-user.target

注释:传统运行级别可通过init命令切换(如init 3进入命令行模式),但建议使用systemd目标。

2 引导相关组件

2.1 主引导记录(MBR)

MBR是磁盘首个扇区(512字节),包含:

  • 引导代码(446字节):加载GRUB核心代码。
  • 分区表(64字节):记录磁盘分区信息。
  • 魔数(2字节):标识有效性。 若MBR损坏,系统无法启动。可通过Live USB修复:
# 使用Live USB启动后,重装GRUB到磁盘(示例:磁盘为/dev/sda) sudo grub-install /dev/sda sudo update-grub

2.2 GRUB启动程序

GRUB配置文件详解(/etc/default/grub部分参数):

GRUB_TIMEOUT_STYLE=menu # 显示菜单(hidden表示隐藏) GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" # 内核参数:安静启动+图形动画 GRUB_DISABLE_OS_PROBER=false # 允许探测其他系统(用于双系统)

案例代码:在GRUB菜单中临时修改启动参数(用于修复启动问题):

  1. 启动时按Shift键显示GRUB菜单,选择Ubuntu项后按e键。
  2. 找到linux行,删除quiet splash,添加single(单用户模式)。
  3. 按Ctrl+X启动,进入救援模式后重置密码或修复配置。

3 登录过程

3.1 login进程

系统启动完成后,login进程提示用户登录。在图形界面中,由显示管理器(如GDM)提供登录窗口;在命令行界面中,直接提示输入用户名和密码。

3.2 选择Shell

用户登录后,系统根据/etc/passwd中配置的Shell启动对应解释器(如bash)。

案例代码:查看和更改用户Shell:

# 查看当前Shell echo $SHELL # 输出示例:/bin/bash # 更改默认Shell为zsh(需已安装) chsh -s /bin/zsh

3.3 用户初始化文件

登录后自动执行初始化脚本:

  • 全局配置:/etc/profile/etc/bash.bashrc
  • 用户个性化配置:~/.bashrc~/.profile案例代码:在~/.bashrc中添加自定义别名:
# 编辑用户bashrc nano ~/.bashrc # 添加以下行(示例:创建快捷别名) alias ll='ls -alF' # ll命令显示详细文件列表 alias update='sudo apt update && sudo apt upgrade' # 一键更新系统 # 重新加载配置 source ~/.bashrc

4 关闭系统

4.1 shutdown命令

语法shutdown [选项] [时间] [消息]

常用选项

  • -h--poweroff:关机(默认)
  • -r:重启
  • -c:取消计划中的关机
  • -k:仅发送警告消息,不实际关机案例代码
# 立即关机 sudo shutdown -h now # 10分钟后关机,并通知用户 sudo shutdown -h +10 "系统将于10分钟后维护关机,请保存工作!" # 定时关机(今晚20:30) sudo shutdown -h 20:30 # 取消关机计划 shutdown -c

注释

  • 使用-k选项可模拟关机(如shutdown -k +5 "测试警告")向所有用户发送消息但不执行关机。
  • 生产环境中务必提前发送消息,避免数据丢失。

4.2 init命令

通过切换运行级别关机或重启(兼容Systemd):

# 关机(运行级别0) sudo init 0 # 重启(运行级别6) sudo init 6 # 进入单用户维护模式(运行级别1) sudo init 1

4.3 其他命令

  • halt:立即停止系统(不断电源)
  • poweroff:立即关机并断电源
  • reboot:立即重启案例代码
# 强制关机(不推荐,可能丢失数据) sudo poweroff # 安全重启(推荐) sudo reboot # 使用sync确保数据写入磁盘后重启 sync && sudo reboot

重要提醒:关机前建议手动运行sync将内存数据写入磁盘,防止数据丢失。

关键配置文件与日志

  • 启动日志journalctl -b(查看本次启动日志)或last reboot(重启历史)。
  • 关机记录last shutdown(需systemd-logind支持)。
  • 运行级别who -r查看当前级别。

以上知识点覆盖了Ubuntu 22.04启动关闭的核心流程,结合代码示例可帮助理解操作细节。实际操作时需注意权限问题(如使用sudo),生产环境谨慎执行关机命令。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/27 18:21:28

PyTorch+CUDA环境搭建耗时太久?试试我们的镜像方案

PyTorchCUDA环境搭建耗时太久?试试我们的镜像方案 在深度学习项目启动的前48小时里,你是否经历过这样的场景:刚配好Python环境,pip install torch 却卡在90%;好不容易装完,运行代码却发现 CUDA is not avai…

作者头像 李华
网站建设 2026/4/2 11:06:48

计算机毕设java后疫情时代小区服务网站 基于Java的后疫情时代社区服务管理系统设计与实现 Java技术驱动的后疫情时代小区服务平台开发

计算机毕设java后疫情时代小区服务网站54qh89 (配套有源码 程序 mysql数据库 论文) 本套源码可以在文本联xi,先看具体系统功能演示视频领取,可分享源码参考。随着后疫情时代的到来,社区服务管理面临着新的挑战和机遇。传统的管理方…

作者头像 李华
网站建设 2026/3/31 1:54:26

YOLO在半导体晶圆检测中的亚微米级识别能力

YOLO在半导体晶圆检测中的亚微米级识别能力 在7nm、5nm乃至3nm制程已成为主流的今天,半导体晶圆上的每一个结构特征都已缩小至数百甚至几十纳米尺度。在这种极端精细的制造环境中,哪怕是一个0.2μm的颗粒污染,也可能导致整颗芯片失效。传统的…

作者头像 李华
网站建设 2026/4/4 11:43:29

YOLO镜像提供API限流与熔断机制

YOLO镜像中的API限流与熔断机制:构建高可用AI服务的关键实践 在智能制造车间的视觉质检线上,一台边缘设备正以每秒30帧的速度持续上传图像进行缺陷检测。突然,网络波动导致请求堆积,瞬时并发飙升至正常值的十倍。若系统无防护措施…

作者头像 李华
网站建设 2026/3/27 12:45:53

Git下载慢影响效率?搭配国内镜像源加速AI环境搭建

Git下载慢影响效率?搭配国内镜像源加速AI环境搭建 在人工智能项目开发中,最让人沮丧的场景之一莫过于:刚拿到一个前沿的开源模型代码仓库,满心期待地执行 git clone,结果进度条卡在 10% 一动不动;或者运行…

作者头像 李华