当前位置: 首页 > news >正文

Rufus 制作启动盘 | 便携的工作空间

唠唠闲话

最近服务器硬盘故障多,在修复过程中,学习了一些操作,这里做个记录。本期主要介绍 U盘启动盘的制作,以及持久化存储。

U 盘启动盘

镜像选择

Ubuntu 的版本命名遵循 “Adjective Animal” 的模式,即 “形容词+动物” 名称,每个版本都有一个官方代号。此外,版本还分为 LTS 和普通版,LTS 是“Long Term Support”的缩写,意味着这个版本将获得长期的支持,通常是五年。普通版本通常每六个月发布一次,支持期限为九个月。

写这篇博客的时候是 2024 年,建议下载至少 20.04 LTS 版本的 Ubuntu 镜像,这是一个长期支持版本,支持到 2025 年。

  1. 20.04 LTS “Focal Fossa”

    • 发布时间:2020年4月
    • “Focal”意味着“中心的”或“焦点”,“Fossa”是马达加斯加的一种猫科动物,暗示该版本稳定且聚焦于长期支持特性
    • 下载地址:https://releases.ubuntu.com/focal/
  2. 22.04 LTS “Jammy Jellyfish”

    • 发布时间:2022年4月
    • “Jammy”在英国俚语中意思是“非常幸运的”,“Jellyfish”即水母,可能是指新的长期支持版本在稳定性与新特性引入方面的“幸运平衡”
    • 下载地址:https://releases.ubuntu.com/jammy/

下载 Ubuntu 22 镜像:

wget -c https://releases.ubuntu.com/jammy/ubuntu-22.04.4-desktop-amd64.iso

制作启动盘

从 Rufus 官网下载 Rufus 工具,该工具仅支持 Windows 系统:

wget -c https://github.com/pbatard/rufus/releases/download/v4.4/rufus-4.4.exe

打开后,选择镜像,和 U 盘,然后开始制作启动盘。

设置持久化分区存储,这样在 U 盘上安装软件和保存文件都会被保留。如果该 U 盘仅用于系统盘,可将持久分区拉满。

下图保留了部分空间用于日常存储。

20240404184538

注1:如果不设置持久存储,U 盘时将以只读模式加载,同时使用 RAM(随机访问存储器)作为临时的写入空间。这意味着使用过程中产生的数据(如临时文件、系统日志等)都存储在内存中,而不是 U 盘或硬盘上。

注2:Rufus 的持久性功能被明确标记为 EXPERIMENTAL,如果希望更稳定的持久性功能,可以尝试其他工具,如 UNetbootin。

启动 U 盘

进 BIOS 的方式和主板相关。通常,开机按 F2 或 Delete 进入 BIOS 设置,找到启动项,将 U 盘启动项调整到第一位。

开机后,选择语言,选择 “试用 Ubuntu” 进入系统。

输入 ctrl + alt + t 打开终端,输入 df -h 查看硬盘信息,可以看到系统目录 / 由持久化存储分区 /cow 挂载。

软件配置

可将 U 盘当作移动的系统盘,随时随地使用。

根据需要给 U 盘安装软件,参考 Ubuntu 教程(一) | 必备软件的安装和配置。

默认的 APT 源不完整,搜索不到 testdisk 等应用,需要修改。以下为 22 版本的 apt 源:

# cd /etc/apt
# cp sources.list sources.list.bak
# nano sources.list
deb http://archive.ubuntu.com/ubuntu jammy main restricted
deb http://archive.ubuntu.com/ubuntu jammy-updates main restricted
deb http://archive.ubuntu.com/ubuntu jammy universe
deb http://archive.ubuntu.com/ubuntu jammy-updates universe
deb http://archive.ubuntu.com/ubuntu jammy multiverse
deb http://archive.ubuntu.com/ubuntu jammy-updates multiverse
deb http://archive.ubuntu.com/ubuntu jammy-backports main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu jammy-security main restricted
deb http://archive.ubuntu.com/ubuntu jammy-security universe
deb http://archive.ubuntu.com/ubuntu jammy-security multiverse

更改 apt 源后,开始安装软件:

sudo apt update
sudo apt install net-tools vim testdisk curl git network-manager gddrescue lvm2 -y
# 可选,用于 ssh 连接和网络挂载
sudo apt install openssh-server sshfs -y
sudo apt install python3 python3-pip -y

实测用 Rufus 安装的 U 盘启动盘,在启动时,有可能会重置主机名和默认登录用户。因此建议创建新用户,并在新用户上配置环境。

网络设置

Netplan 会读取 /etc/netplan/ 目录下的所有以 .yaml 结尾的文件来构建整个系统的网络配置。如果目录中有多个配置文件,Netplan 会按字母顺序合并这些文件。

查看默认 netplan 配置文件:

# cat /etc/netplan/01-network-manager-all.yaml
network:version: 2renderer: NetworkManager

网络配置由 NetworkManager 服务管理,NetworkManager 是一个动态网络管理工具,它可以自动检测和配置网络连接,使得用户在大多数情况下无需手动配置网络。

部分情况需手动修改,可通过以下方法之一来查看系统中所有网络接口的名称:

  • 执行 ip linkip a 命令在终端中查看。
  • 使用 ifconfig 命令(如果已安装 net-tools 包)。

举个例子:

network:ethernets:enp195s0: # 接口名称,通过 ip link 查看addresses: [192.168.98.26/24]eno2:addresses: # 静态 IP 地址- 172.23.148.35/24# 网络配置gateway4: 172.23.148.1nameservers:addresses:- 114.114.114.114search: []version: 2

接口名称的含义:

  • en 表示以太网(Ethernet)。
  • o 表示 onboard(板载设备)。
  • s 表示 hotplug slot(热插槽)。
  • x 表示 MAC地址(通常用于无法通过其他方式分类的情况)。
  • 数字表示物理位置或者是内部编号,如 eno1 通常指的是第一个板载以太网接口。

修改配置后,执行 sudo netplan apply 使配置生效。

修改日志规则

默认情况下,Ubuntu 系统日志使用 rsyslog 服务来记录系统事件,按时间轮转。

cd /etc/logrotate.d
cat rsyslog

内容形如:

/var/log/syslog
/var/log/kern.log
...
/var/log/debug
/var/log/messages
{rotate 4weeklymissingoknotifemptycompressdelaycompresssharedscriptspostrotate/usr/lib/rsyslog/rsyslog-rotateendscript
}

前边是指定的日志文件,大括号 {} 内的是对这些文件应用的具体规则:

  • rotate 4:保留最新的4个轮替文件。超过这个数量的旧文件会被删除。
  • weekly:日志文件将每周轮替一次。
  • missingok:如果日志文件不存在,不会报错。
  • notifempty:如果日志文件为空,不进行轮替。
  • compress:轮替的日志文件将被压缩(默认使用gzip)。
  • delaycompress:压缩操作将延迟到下一次轮替周期。
  • sharedscripts:这个选项意味着 postrotate 脚本将只执行一次,而不是对每个日志文件执行一次。
  • postrotate/endscript:这是一对指令,定义了在日志文件轮替后需要执行的脚本。

比如将 weekly 改为 size 100M 选项,指定日志文件达到一定大小时进行轮替,避免异常占用。

执行 sudo logrotate -f /etc/logrotate.conf 使配置生效。

异常处理

U 盘运行 ddrescue 时,没限制日志大小,把电脑卡死了,导致重启一直卡在光标处进不了系统。

在论坛翻到了一个进入命令行系统的方案:Ubuntu boots to a black screen with blinking a underscore character after release upgrade。

开机选择安全模式,卡在光标处的时候,按 Ctrl + Alt + F1Ctrl + Alt + F3 切换到命令行模式。

最后通过命令行发现了该问题: U 盘的 /var/log/syslog/var/log/kern.log 把持久化内存撑爆了,导致系统无法正常启动。

清理并刷新系统日志:

cd /var/log
sudo echo > syslog
sudo echo > kern.log
sudo systemctl restart rsyslog

重新输入 df -h 查看硬盘占用信息。

工作区备份

Rufus 重装后有两个分区,一个是只读的 squashfs,另一个是持久化的 ext4。如果将 U盘用于日常工作,可以用 dd 命令备份硬盘,避免 U 盘损坏丢失工作区。命令如下:

sudo dd if=/dev/sda of=/path/to/backup.img bs=4M status=progress

以上。实践过程中遇到了其他问题或有新的发现,欢迎讨论~

http://www.lryc.cn/news/392105.html

相关文章:

  • python函数参数
  • 深入理解 XML 和 HTML 之间的区别
  • 代码随想录算法训练营第四十四天|188.买卖股票的最佳时机IV、309.最佳买卖股票时机含冷冻期、714.买卖股票的最佳时机含手续费
  • YOLOv8改进 添加CVPR2024 PKINet中注意力机制CAAttention
  • 油猴Safari浏览器插件:Tampermonkey for Mac 下载
  • 如何在Vue中添加事件监听器
  • 软设之UML图中的用例图
  • 弹性伸缩高性能计算服务一一黑石裸金属服务器
  • 欢乐钓鱼大师攻略:西沙群岛攻略,内置自动辅助云手机!
  • Apipost接口测试工具的原理及应用详解(六)
  • 矩阵的奇异值(Singular Values)
  • 清空flowable的表定义的相关表
  • Tailwind CSS 在vue里 的使用
  • 【人工智能】--强化学习(2.0)
  • 跟着峰哥学java 微信小程序 第二天 封装ES7 + 后端工作
  • QT学习(6)——QT中的定时器事件,两种实现方式;事件的分发event,事件过滤器
  • ASP.NET Core 6.0 使用 Action过滤器
  • Java 并发集合:CopyOnWrite 写时复制集合介绍
  • Linux 查看修改系统时间| date -s
  • 数据库MySQL学习笔记
  • 四端口千兆以太网交换机与 SFP 扩展功能
  • Renderless 思想正在影响前端开发
  • maven 打包执行配置(对maven引用的包或者丢进去的包都包含在里面)打成jar包
  • Python酷库之旅-第三方库Pandas(004)
  • 天猫超市卡怎么用
  • ai智能语音机器人电销系统:让销售更快速高效
  • Redis 中的通用命令(命令的返回值、复杂度、注意事项及操作演示)
  • 【Hive实战】 HiveMetaStore的指标分析
  • 【Linux系统】CUDA的安装与graspnet环境配置遇到的问题
  • 滤波算法学习笔记