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

news2024/11/26 14:22:57

唠唠闲话

最近服务器硬盘故障多,在修复过程中,学习了一些操作,这里做个记录。本期主要介绍 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: 2
  renderer: 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.1
      nameservers:
        addresses:
        - 114.114.114.114
        search: []
  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 4
        weekly
        missingok
        notifempty
        compress
        delaycompress
        sharedscripts
        postrotate
                /usr/lib/rsyslog/rsyslog-rotate
        endscript
}

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

  • 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.coloradmin.cn/o/1897572.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据驱动制造业升级,免费可视化工具成关键

制造业作为国民经济的支柱产业,正经历着前所未有的变革。数据,作为这场变革的核心驱动力,其重要性不言而喻。然而,面对海量且复杂的数据,如何高效、直观地将其转化为有价值的洞察,成为了众多制造企业亟待解…

C++ 栈-队列-优先级队列

目录 1 栈 2 队列 3 deque 介绍 4 优先级队列 5 反向迭代器 栈也是我们在C语言就模拟实现过的一种数据结构,在C中,栈其实和我们前面模拟实现过的string、vector等容器有一点区别,站起是不是容器,而是一种容器适配器,我…

【前端项目笔记】9 数据报表

数据报表 效果展示: 在开发代码之前新建分支 git checkout -b report 新建分支report git branch 查看分支 git push -u origin report 将本地report分支推送到云端origin并命名为report 通过路由的形式将数据报表加载到页面中 渲染数据报表基本布局 面包屑导航…

总结一下 .NET FrameWork 和 .NET Core 创建的项目的不同点

前言 从 Visual Studio 2022 开始,微软开始淡化 .NET Framework 的概念,在项目向导中,只有使用带 “.NET Framework” 的项目模板创建的才是 .NET Framework 项目,使用其他模板创建的都是 .NET Core 项目 比如,如果你…

【数据结构】06.栈队列

一、栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。 压栈&#…

数据结构--单链表实现

欢迎光顾我的homepage 前言 链表和顺序表都是线性表的一种,但是顺序表在物理结构和逻辑结构上都是连续的,但链表在逻辑结构上是连续的,而在物理结构上不一定连续;来看以下图片来认识链表与顺序表的差别 这里以动态顺序表…

《梦醒蝶飞:释放Excel函数与公式的力量》8.8 STDEVP函数

8.8 STDEVP函数 STDEVP函数是Excel中用于计算总体数据的标准偏差的函数。标准偏差是统计学中的一个重要指标,用于衡量数据集中各数值偏离平均值的程度。总体标准偏差考虑了整个数据集,而不是样本。 8.8.1 函数简介 STDEVP函数用于返回总体数据的标准偏…

Java实现日志全链路追踪.精确到一次请求的全部流程

广大程序员在排除线上问题时,会经常遇见各种BUG.处理这些BUG的时候日志就格外的重要.只有完善的日志才能快速有效的定位问题.为了提高BUG处理效率.我决定在日志上面优化.实现每次请求有统一的id.通过id能获取当前接口的全链路流程走向. 实现效果如下: 一次查询即可找到所有关…

前端面试题13(API请求方法)

在前端JavaScript中,进行API请求主要可以通过几种方式来实现,最常见的是使用XMLHttpRequest(较旧的方法)、fetch(现代浏览器推荐方法)以及使用第三方库如axios或jQuery.ajax等。 1. XMLHttpRequest 这是最…

MPI hello world SSH 免密互联

目标: 我们想实现2台主机免密互联,将MPI Hello World跑起来 假设hostname是node01,node02,(Linux shell窗口一般是UserNameHostName,node1和node2一定要和HostName一样) hostname是/etc/hosts中的配置,如下…

工地/矿区/电力/工厂/环卫视频智能安全监控反光衣AI检测算法的原理及场景应用

一、引言 随着科技的快速发展,特别是在智能交通和安全生产领域,对于夜间或弱光环境下的人员识别和安全监控需求日益凸显。反光衣作为一种重要的安全装备,被广泛应用于道路施工、工地作业、夜间巡逻、安全生产等场景,旨在提高人员的…

【CUDA】 矩阵乘法 matMatMul

矩阵乘法 matMatMul 矩阵乘法是基本线性代数子程序(BLAS)的重要组成部分,而且线性代数中许多其他操作以此为基础。 图1是两个矩阵的乘法。 基础方法,正方形tile和长方形tile 基础方法 执行矩阵乘法的基础方法是使用单个线程执…

2021-06-15 protues(ISIS)脉冲发生器仿真仪表使用

缘由这个脉冲发生器怎么连线_编程语言-CSDN问答

STM32智能交通管理系统教程

目录 引言环境准备智能交通管理系统基础代码实现:实现智能交通管理系统 4.1 数据采集模块 4.2 数据处理与分析 4.3 控制系统实现 4.4 用户界面与数据可视化应用场景:交通管理与优化问题解决方案与优化收尾与总结 1. 引言 智能交通管理系统利用STM32嵌…

【对顶堆 优先队列】295. 数据流的中位数

本文涉及知识点 对顶堆 优先队列 LeetCode295. 数据流的中位数 中位数是有序整数列表中的中间值。如果列表的大小是偶数,则没有中间值,中位数是两个中间值的平均值。 例如 arr [2,3,4] 的中位数是 3 。 例如 arr [2,3] 的中位数是 (2 3) / 2 2.5 …

网络漏洞挖掘实测报告

关于作者:个人主页 网络漏洞挖掘实测报告 一、前言 网络漏洞挖掘是信息安全领域中至关重要的一环。通过挖掘和修复漏洞,可以有效地保护系统免受潜在的攻击和破坏。本报告旨在记录一次完整的网络漏洞挖掘实测过程,包括实施方法、过程、结果以…

免杀笔记 ----> ShellCode Loader !!!

学了那么久的前置知识,终于到了能上线的地方了!!! 不过这里还没到免杀的部分,距离bypass一众的杀毒软件还有很长的路要走!! 目录 1.ShellCode 2.ShellCode Loader的概念 3.可读可写可…

Android实现获取本机手机号码

和上次获取设备序列号一样,仍然是通过无障碍服务实现,在之前的代码基础上做了更新。代码和demo如下: package com.zwxuf.lib.devicehelper;import android.accessibilityservice.AccessibilityService; import android.app.Activity; import…

Java中使用arima预测未来数据

看着已经存在的曲线图数据,想预估下后面曲线图的数据。 import java.util.Vector;public class AR {double[] stdoriginalData{};int p;ARMAMath armamathnew ARMAMath();/*** AR模型* param stdoriginalData* param p //p为MA模型阶数*/public AR(double [] stdori…

Dungeonborne延迟高?降低Dungeonborne延迟的方法分享

Dungeonborne是Mithril Interactive开发并发行的一款沉浸式第一人称 PvPvE 地下城探险游戏。Dungeonborne的魅力并不仅仅在于战斗和冒险。游戏中的剧情设计同样引人入胜,每个NPC都有自己独特的故事和背景,玩家在与他们交流的过程中,不仅能了解…