代码实战:
搭建视频
哔哩哔哩:https://www.bilibili.com/video/BV1CeG6zvEGD
YouTube:https://youtu.be/Rdsj-1I_0KE
第三节课:理解 DD 命令,把 Linux(Debian/Ubuntu) 彻底“变成 Windows”!
一、 🎯 本节目标
你将彻底搞懂这行看起来超级复杂的命令:
wget -O- "https://dl.lamp.sh/vhd/zh-cn_win2022.xz" | xzcat | pv | dd of=/dev/vda
我们会逐段拆解每一个词,讲清楚它在干嘛。
1.1、整个命令在干什么?
一句话总结:
“从远程下载一个 Windows 系统镜像win2022.xz,边下载边解压.xz格式,边解压边写入 VPS 硬盘,把原来的 Linux 系统(🎓2/3提到的0/1项)覆盖掉。”
二、🔧按顺序拆解每个部分
1️⃣ wget -O- "https://dl.lamp.sh/vhd/zh-cn_win2022.xz"
1.1 wget 是什么?(🎓1/3已提**)**
wget 是 Web get 的意思,简单来说:wget = 从网络上获取文件(Web Get)
它是一个命令行里的“下载工具”。你给它一个网址,它就把那个文件下载下来,像浏览器的“另存为”。
1.2 -O- 是什么意思?
-x 是短参数(single letter)
--xxx 是长参数(full word)
这就是 Linux 命令的标准写法,统一格式,不能随便改。
这个 -O 是 output(输出) 的意思
后面的 - 表示:不保存到文件,而是直接输出到终端(或后续管道)
1.3 最后是下载地址:
https://dl.lamp.sh/vhd/zh-cn_win2022.xz
这是一个压缩过的 Windows 镜像文件地址(大概 13GB),后缀 .xz 表示它是用 xz 算法压缩的。
2️⃣ | xzcat
2.1 | 是什么意思?
这个 | 叫做“管道符号”,意思是:
把前面命令的输出,传给后面的命令当输入。
就像搭水管一样,一头连着下载器 wget,另一头连着解压器 xzcat。
2.2 xzcat 是什么?
这是个解压工具,会把 .xz 压缩文件解压出来
xzcat = .xz + cat
xz表示处理 .xz 格式的压缩文件(类似 .zip、.rar)
cat是 Linux 里常见命令,表示 “显示内容/输出内容”
相比 xz -d 是解压到文件,xzcat 是直接打印出解压结果(给下一步用)。
3️⃣ | pv
3.1 pv 是什么?
pv 是 Pipe Viewer,显示“数据流动的进度条”。
这个命令不改变内容,只负责显示下载/解压/写入的速度、已完成大小和进度。
4️⃣ | dd of=/dev/vda
4.1 dd 是什么?
DD = Data Definition(数据定义)
dd 是 Linux 里一个超级危险但非常强大的命令,用来按字节复制数据。
简单理解就是“数据复制器”
- 把整个系统硬盘备份
- 把镜像写入 USB 或硬盘
- 甚至恢复硬盘分区、修复启动项
📌 命令格式长这样:
dd if=输入文件 of=输出文件
比如:
dd if=ubuntu.iso of=/dev/sdb
意思是:
把 Ubuntu 系统镜像 写进 U 盘(/dev/sdb)
疑问1:那文章中我们写的wget -O- xxx | xzcat | pv | dd of=/dev/vda 没有写 if=...,这是不是不完整?
不。📌 小技巧:dd 可以从“标准输入”读数据 如果你不写 if=...,dd 默认就会从 标准输入(stdin)读取,也就是前面的管道 | 传来的数据!
就像这样:echo hello | dd of=hello.txt 上面命令虽然没写 if=...,但 echo 的内容就是 dd 的输入。
所以这一整串命令:
wget -O- "https://...win2022.xz" | xzcat | pv | dd of=/dev/vda
你可以把它当成“流水线”:
步骤命令意思
🧲 第1步wget -O-下载镜像(输出到终端而不是文件)
🔓 第2步xzcat解压 .xz 格式
📊 第3步pv显示进度条
🛠️ 第4步dd of=/dev/vda把前面传过来的数据写入硬盘
4.2 of=/dev/vda 是什么意思?
总述:
of 是 output file(输出文件)
/dev/vda 是你 VPS 的整个虚拟硬盘!
所以这个命令的意思是: 把解压出来的 Windows 镜像,整个写入 VPS 的硬盘中!
⚠️ 这会覆盖你 VPS 上原来的 Linux 系统,一去不复返!
拆解:
✅ /
Linux 一切从根开始
就是“根目录”,相当于整个系统的起点,类似 Windows 的 C:\
✅ /dev/
这个是一个特殊文件夹,全名是:
device(设备)
- 这个目录下,存放着你机器的所有硬件设备的接口
- 包括:硬盘、U盘、CD-ROM、串口、内存设备等等
- 每个设备在 Linux 中都被“当作文件”来处理
✅ vda
这是设备的名字,我们逐个解释:
字母含义vd表示 虚拟磁盘(virtual disk)
(如果是物理磁盘,会叫 sd,即 sda、sdb 等)
a表示 第一个磁盘(类似编号)
💡 类似名字还有:
/dev/vda第一块虚拟硬盘
/dev/vdb第二块虚拟硬盘
/dev/sda第一块 SATA/SCSI 硬盘(常见于真实机器)
/dev/sdb第二块 SATA 硬盘
三、📦 总结整个过程:
就像你从远程仓库拿到一个压缩的 Windows 安装包,然后:不保存,直接边下载、边解压、边看进度、边写进硬盘
这个过程一旦完成,你的 Linux 系统就彻底被 Windows 镜像替代了。(🎓2/3中问题3.4)
⏳ 所需时间
镜像大小约 15GB
VPS 下载速度越快,越快完成(大概 10~30 分钟)
🎯 最后的结尾命令:
当这条命令执行完后,你只需执行:
reboot
就会从新写入的 Windows 系统启动!
✔️ re- 表示“再次”✔️ boot 表示“启动系统”✔️ reboot 就是“重新启动电脑”
⚠️下节实战项目预告:0基础搭建以自己名字命名的笔记+互动网站memos⚠️
💪汇总:3节课看完你已经完全掌握以下知识💪
(第1节课:基础概念 & 初识命令)
✔️ VPS 是一台远程服务器,可以像自己的电脑一样用命令操作
✔️ Linux 是一种操作系统(像 Windows 一样),但它是通过命令行控制的
✔️ SSH 是一种远程登录工具,让你连接并控制 VPS
✔️ apt 是 Linux 中的软件安装命令(像“应用商店”)
✔️ wget 是下载工具(像浏览器下载)
✔️ mkdir -p 创建文件夹,-p 表示“自动创建中间路径”
✔️ --no-check-certificate 表示不检查 HTTPS 安全证书(两个 -- 是命令行规范)
✔️ -O 是 wget 的输出参数,-O 文件名 表示保存成什么文件
(第2节课:启动流程 & GRUB菜单)
✔️ Linux 系统启动用的是 GRUB 引导菜单
✔️ 菜单编号从 0 开始,比如:0 是 Linux,2 是我们要用的 mfslinux 镜像
✔️ GRUB_DEFAULT=2 会设置开机默认启动第2项(mfslinux)
✔️ update-grub2 是更新启动菜单
✔️ 重启后进入 mfslinux 是临时的,硬盘里的 Linux 系统(0和1)此时还存在
✔️ 如果执行 DD 命令,0和1对应的原系统会被覆盖掉,无法恢复
✔️ 所以如果担心数据丢失,应先备份或做快照
第3节课:DD命令详细拆解)
✔️ wget -O- 表示下载后直接输出,不保存成文件
✔️ | 是管道符,表示前一个命令的输出作为下一个命令的输入
✔️ xzcat 是用来解压 .xz 文件的工具
✔️ pv 是显示进度的工具,不改变数据内容
✔️ dd 是“数据克隆工具”,能精确写入整个硬盘
✔️ of=/dev/vda 表示写入 VPS 的整块硬盘
✔️ 整条命令:从远程下载压缩包 → 解压 → 显示进度 → 写入硬盘
✔️ 写入成功后用 reboot 重启,VPS 会从新的 Windows 系统启动
评论区