Linux dd命令 鄙视各种坑爹错误教程
- 备份MBR
dd if=/dev/sda of=/opt/mbr.img bs=512 count=1 status=progress
- 恢复MBR
dd if=/opt/mbr.img of=/dev/sdb status=progress
- 恢复bootloader
dd if=/opt/mbr.img of=/dev/sdb bs=446 count=1 status=progress
- 恢复分区表
dd if=/opt/mbr.img of=/dev/sdb bs=1 skip=446 seek=446 count=64 conv=notrunc
- skip是跳过ibs, 为if指定的文件
发现跳过if文件两个字节,b文件被覆盖
原文件b是有换行, 本人使用vim编辑,默认在每行末尾加 '\n'
ASCII:
10: LF '\n'
13: CR '\r'Linux默认换行使用ASCII码 10, 即 '\n' (Windows使用 '\r\n')
- 如果不想覆盖目标文件,即 of指定的文件,需使用选项 conv=notrunc
notrunc do not truncate the output file
- 如果of文件很重要,不能被覆盖,则使用 conv=excl, dd默认会把目标文件覆盖,错误操作极其危险
excl fail if the output file already exists
-
lcase change upper case to lower case ucase change lower case to upper case
- seek 操作 of 文件
-
conv=swab swap every pair of input bytes
'\n' 也被交换了,按字节交换,不难理解
notrunc不起作用
- conv=noerror 遇到错误继续
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律