在Ubuntu上使用 dd 工具制作U盘启动盘

在Ubuntu上使用 dd 工具制作U盘启动盘

在Linux系统中,dd 是一个功能强大且原生支持的命令行工具,常用于复制文件和转换数据。它也可以用来将ISO镜像写入U盘,从而创建一个可启动的操作系统安装盘。虽然图形化工具(如 Startup Disk Creator 或 Etcher)更加直观,但使用 dd 命令制作启动盘具有更高的灵活性和可靠性,特别适合熟悉终端操作的用户。

本文将详细介绍如何在 Ubuntu 系统下使用 dd 命令制作 U 盘启动盘,包括完整步骤、注意事项以及常见问题的解决方案。


📌 适用场景

  • 想要手动控制启动盘制作过程
  • 图形化工具无法正常工作时
  • 需要高度可靠的写入方式(如制作恢复盘)
  • 使用较新的硬件或特殊格式需求(例如配合 uefi-ntfs.img

🛠️ 准备工作

1. 下载 ISO 文件

确保你已经从官方或可信源下载了目标系统的 ISO 文件(如 Ubuntu、Debian、Windows 安装镜像等)。

2. 插入 U 盘

将准备好的 U 盘插入电脑 USB 接口。请确认 U 盘容量大于 ISO 文件大小。


🧭 操作步骤

步骤一:查找 U 盘设备名

打开终端(Ctrl + Alt + T),运行以下命令查看所有磁盘设备:

lsblk

或者:

sudo fdisk -l

你会看到类似如下输出:

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 465.8G  0 disk 
├─sda1   8:1    0   512M  0 part /boot/efi
├─sda2   8:2    0 464.3G  0 part /
sdb      8:16   1  14.9G  0 disk 
└─sdb1   8:17   1  14.9G  0 part /media/user/USB

在这里,/dev/sdb 就是你的 U 盘设备(注意不要选错!)

⚠️ 特别注意:设备名通常是 /dev/sdX 格式(如 /dev/sdb, /dev/sdc),而不是 /dev/sdX1 这样的分区路径。


步骤二:卸载 U 盘

如果 U 盘已经被挂载,请先卸载:

sudo umount /dev/sdX*

替换 sdX 为你的实际设备名,如 sdb


步骤三:使用 dd 写入 ISO 到 U 盘

执行以下命令将 ISO 文件写入 U 盘:

sudo dd if=/path/to/image.iso of=/dev/sdX bs=4M status=progress

参数说明:

  • if:输入文件(input file),即 ISO 文件路径。
  • of:输出文件(output file),即 U 盘设备路径。
  • bs=4M:每次读写块大小设为 4MB,提升写入速度。
  • status=progress:显示写入进度信息(适用于较新版本的 dd)。

示例:

sudo dd if=~/Downloads/ubuntu-24.04-desktop-amd64.iso of=/dev/sdb bs=4M status=progress

这个过程可能需要几分钟时间,完成后你会返回终端提示符。


步骤四:同步数据并安全弹出 U 盘

为了确保所有数据正确写入,建议运行:

sync

然后你可以安全拔出 U 盘。


✅ 成功验证

将 U 盘插入另一台电脑,并进入 BIOS 设置选择从 USB 启动。如果一切顺利,你应该能够看到目标系统的启动界面(如 Ubuntu 的安装菜单)。


⚠️ 注意事项

  • 一定要确认设备名正确,否则可能误写系统盘导致数据丢失。
  • dd 会完全覆盖整个 U 盘内容,请提前备份。
  • 不建议对 NTFS 分区直接使用 dd 来制作 Windows 启动盘,因为某些情况下需要额外引导镜像(如 uefi-ntfs.img)来实现 UEFI 引导。
  • 如果遇到“权限被拒绝”错误,请确认使用了 sudo 执行命令。

🧩 补充:UEFI + NTFS 启动盘的处理

如果你的目标是制作一个能从 UEFI 启动的 Windows 安装盘,并且希望保留大文件支持(NTFS),可以考虑使用 uefi-ntfs.img 镜像结合 dd 命令,具体方法如下:

  1. 下载 uefi-ntfs.img 镜像。
  2. 使用 dd 将其写入 U 盘的一个 FAT32 分区。
  3. 将 ISO 中的内容解压到 U 盘的 NTFS 分区。
  4. UEFI 固件会加载 uefi-ntfs.img,然后访问 NTFS 分区中的安装文件。

这种方式解决了传统 FAT32 分区不能支持大于 4GB 文件的问题,非常适合制作大体积 Windows 安装盘。


🧰 常用命令速查表

功能命令
查看设备列表lsblksudo fdisk -l
卸载 U 盘sudo umount /dev/sdX*
写入 ISO 到 U 盘sudo dd if=image.iso of=/dev/sdX bs=4M status=progress
数据同步sync

📝 END

虽然 dd 命令没有图形界面工具那么直观,但它是一个强大而稳定的工具,尤其适合高级用户和脚本自动化。只要注意设备名称的准确性,就可以非常可靠地完成 U 盘启动盘的制作任务。

无论你是想安装 Ubuntu、修复系统,还是构建自定义 Linux 发行版,掌握 dd 命令都是一个非常实用的技能。


📌 小贴士:

如果你不习惯使用命令行,也可以尝试图形化工具如 Startup Disk Creator 或 Etcher,它们也能很好地完成这项工作。


拜拜~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/82896.shtml

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

相关文章

如何理解OSI七层模型和TCP/IP四层模型?HTTP作为如何保存用户状态?多服务器节点下 Session方案怎么做

本篇概览: OSI 七层模型是什么?每一层的作用是什么?TCP/IP四层模型和OSI七层模型的区别是什么? HTTP 本身是无状态协议,HTTP如何保存用户状态? 能不能具体说一下Cookie的工作原理、生命周期、作用域?使用…

深入剖析 RocketMQ 中的 DefaultMQPushConsumerImpl:消息推送消费的核心实现

前言 在 Apache RocketMQ 的消息消费体系中,RocketMQ 提供了DefaultMQPushConsumer(推送消费)和DefaultMQPullConsumer(拉取消费)两种主要消费方式。DefaultMQPushConsumer与DefaultMQPullConsumer在消息获取方式&…

Linux编程:2、进程基础知识

一、进程基本概念 1、进程与程序的区别 程序:静态的可执行文件(如电脑中的vs2022安装程序)。进程:程序的动态执行过程(如启动后的vs2022实例),是操作系统分配资源的单位(如 CPU 时…

React Router 中 navigate 后浏览器返回按钮不起作用的问题记录

React Router 中 navigate 后浏览器返回按钮不起作用的问题记录 在使用 React Router(v6)开发项目时,我遇到了一个让人困惑的问题: 当我从 /article 页面使用 navigate("/article/next") 进行跳转后,点击浏…

[面试精选] 0094. 二叉树的中序遍历

文章目录 1. 题目链接2. 题目描述3. 题目示例4. 解题思路5. 题解代码6. 复杂度分析 1. 题目链接 94. 二叉树的中序遍历 - 力扣(LeetCode) 2. 题目描述 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 3. 题目示例 示例 1 : 输入&…

Addressable-配置相关

1、Profile 概述窗口配置 主要用于配置Addressable打包(构建)加载AB包时使用的一些变量,这些变量定义了 在哪里保存打包(构建)的AB包运行时在哪里加载AB包 可以添加自定义变量,以便在打包加载时使用,之后在设置 组中…

aws(学习笔记第四十三课) s3_sns_sqs_lambda_chain

文章目录 aws(学习笔记第四十三课) s3_sns_sqs_lambda_chain学习内容:1. 整体架构1.1 代码链接1.2 整体架构1.3 测试代码需要的修改1.3.1 unit test代码中引入stack的修改1.3.2 test_outputs_created代码中把错误的去掉 2. 代码解析2.1 生成dead_letter_queue死信队…

Python训练营打卡Day43

kaggle找到一个图像数据集,用cnn网络进行训练并且用grad-cam做可视化 进阶:并拆分成多个文件 config.py import os# 基础配置类 class Config:def __init__(self):# Kaggle配置self.kaggle_username "" # Kaggle用户名self.kaggle_key &quo…

hive 3集成Iceberg 1.7中的Java版本问题

hive 3.1.3 集成iceberg 1.7.2创建Iceberg表报错如下: Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/iceberg/mr/hive/HiveIcebergStorageHandler has been compiled by a more recent version of the Java Runtime …

文本切块技术(Splitter)

为什么要分块? 将长文本分解成适当大小的片段,以便于嵌入、索引和存储,并提高检索的精确度。 用ChunkViz工具可视化分块 在线使用 ChunkViz github https://github.com/gkamradt/ChunkViz 如何确定大模型所能接受的最长上下文 可以从…

C++:用 libcurl 发送一封带有附件的邮件

编写mingw C 程序&#xff0c;用 libcurl 发送一封带有附件的邮件 下面是一个使用 MinGW 编译的 C 程序&#xff0c;使用 libcurl 发送带附件的邮件。这个程序完全通过代码实现 SMTP 邮件发送&#xff0c;不依赖外部邮件客户端&#xff1a; // send_email.cpp #include <i…

tensorflow image_dataset_from_directory 训练数据集构建

以数据集 https://www.kaggle.com/datasets/vipoooool/new-plant-diseases-dataset 为例 目录结构 训练图像数据集要求&#xff1a; 主目录下包含多个子目录&#xff0c;每个子目录代表一个类别。每个子目录中存储属于该类别的图像文件。 例如 main_directory/ ...cat/ ...…

遨游Spring AI:第一盘菜Hello World

Spring AI的正式版已经发布了&#xff0c;很显然&#xff0c;接下来我们要做的事情就是写一个Hello World。 总体思路就是在本地搭建一个简单的大模型&#xff0c;然后编写Spring AI代码与模型进行交互。 分五步&#xff1a; 1. 安装Ollama&#xff1b; 2. 安装DeepSeek&…

华为云Flexus+DeepSeek征文|基于华为云Flexus X和DeepSeek-R1打造个人知识库问答系统

目录 前言 1 快速部署&#xff1a;一键搭建Dify平台 1.1 部署流程详解 1.2 初始配置与登录 2 构建专属知识库 2.1 进入知识库模块并创建新库 2.2 选择数据源导入内容 2.3 上传并识别多种文档格式 2.4 文本处理与索引构建 2.5 保存并完成知识库创建 3接入ModelArts S…

Java优化:双重for循环

在工作中&#xff0c;经常性的会出现在两张表中查找相同ID的数据&#xff0c;许多开发者会使用两层for循环嵌套&#xff0c;虽然实现功能没有问题&#xff0c;但是效率极低&#xff0c;一下是一个简单的优化过程&#xff0c;代码耗时凑从26856ms优化到了748ms。 功能场景 有两…

Prompt Tuning:生成的模型文件有什么构成

一、为什么Prompt Tuning会生成模型文件? 1. Prompt Tuning的本质:优化可训练的「提示参数」 核心逻辑:Prompt Tuning(提示调优)是一种轻量级的微调技术,仅优化模型输入层的提示向量(Prompt Embedding)或少量额外参数,而非更新整个预训练模型的权重。生成模型文件的原…

ARM SMMUv3简介(一)

1.概述 SMMU&#xff08;System Memory Management Unit&#xff0c;系统内存管理单元&#xff09;是ARM架构中用于管理设备访问系统内存的硬件模块。SMMU和MMU的功能类似&#xff0c;都是将虚拟地址转换成物理地址&#xff0c;不同的是MMU转换的虚拟地址来自CPU&#xff0c;S…

在 Windows 系统上运行 Docker 容器中的 Ubuntu 镜像并显示 GUI

在 Windows 上安装一个 X Server&#xff08;如 VcXsrv 或 X410&#xff09;&#xff0c;Ubuntu 容器通过网络将图形界面转发到 Windows。 步骤&#xff1a; 安装 X Server&#xff1a; 推荐使用VcXsrv&#xff0c;免费开源。 安装后运行 XLaunch&#xff0c;选择&#xff1…

Vue3学习(4)- computed的使用

1. 简述与使用 作用&#xff1a;computed 用于基于响应式数据派生出新值&#xff0c;其值会自动缓存并在依赖变化时更新。 ​缓存机制​&#xff1a;依赖未变化时直接返回缓存值&#xff0c;避免重复计算&#xff08;通过 _dirty 标志位实现&#xff09;。​响应式更新​&…

【HarmonyOS 5】出行导航开发实践介绍以及详细案例

以下是 ‌HarmonyOS 5‌ 出行导航的核心能力详解&#xff08;无代码版&#xff09;&#xff0c;聚焦智能交互、多端协同与场景化创新&#xff1a; 一、交互革新&#xff1a;从被动响应到主动服务 ‌意图驱动导航‌ ‌自然语义理解‌&#xff1a;用户通过语音指令&#xff08;如…