news 2026/4/23 18:51:48

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/4/23 4:18:59

避免常见安装错误:PyTorch-CUDA镜像的五大优势分析

PyTorch-CUDA 镜像:如何用容器化技术绕开深度学习环境的“坑” 在实验室、公司服务器甚至个人工作站上部署 PyTorch-GPU 环境时,你是否经历过这样的场景?明明按照官方文档一步步操作,却在最后执行 torch.cuda.is_available() 时返…

作者头像 李华
网站建设 2026/4/23 11:38:54

YOLO系列再进化:YOLOv11适配PyTorch-CUDA全流程

YOLOv11 适配 PyTorch-CUDA:高效部署的工程实践 在智能监控、自动驾驶和工业质检等场景中,目标检测模型的实时性与精度正面临前所未有的挑战。YOLO 系列自诞生以来,始终以“一次前向传播完成检测”为核心理念,在速度与性能之间找到…

作者头像 李华
网站建设 2026/4/23 13:19:18

Conda环境迁移难题破解:容器化PyTorch解决方案

Conda环境迁移难题破解:容器化PyTorch解决方案 在深度学习项目开发中,你是否经历过这样的场景?刚接手一个同事的模型代码,满怀信心地在自己机器上运行 conda env create -f environment.yml,结果却卡在 cudatoolkit 与…

作者头像 李华
网站建设 2026/4/23 13:20:17

专科生必看!8个高效降AIGC工具推荐,轻松应对AI检测

专科生必看!8个高效降AIGC工具推荐,轻松应对AI检测 AI降重工具:让论文更自然,让成绩更安心 在当前的学术环境中,AI生成内容(AIGC)已经成为论文写作中不可忽视的一部分。然而,随着检…

作者头像 李华
网站建设 2026/4/23 13:14:27

Dify可视化界面对接PyTorch模型的服务化路径

Dify可视化界面对接PyTorch模型的服务化路径 在AI能力加速融入业务系统的今天,一个常见的挑战浮出水面:算法团队训练出高性能的PyTorch模型后,往往需要数天甚至数周时间才能将其部署为可用的API服务。这期间充斥着环境不一致、依赖冲突、GPU驱…

作者头像 李华
网站建设 2026/4/23 14:38:32

YOLO镜像集成Grafana仪表盘,可视化监控运行状态

YOLO镜像集成Grafana仪表盘,可视化监控运行状态 在智能制造工厂的视觉质检线上,一台边缘设备正以每秒30帧的速度处理高清图像,实时识别产品缺陷。突然,系统帧率开始缓慢下降——从30 FPS跌至18,再滑落到不足10。操作员…

作者头像 李华