首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DD命令包括目录

问DD命令包括目录
EN

Unix & Linux用户
提问于 2021-07-19 23:24:43
回答 2查看 1.2K关注 0票数 0

我正在学习Linux中的dd命令。出于测试目的,我启动了以下命令:

代码语言:javascript
复制
 sudo dd bs=4M if=/dev/mmcblk0 of=/media/some_remote_host/stuff/myImage.img

我知道dd是用来拍摄给定磁盘/驱动器的图像的。但我很好奇,它是否包括按照Unix文件结构(档案结构)安装文件夹,如/mnt或/media。想查一查却找不到。如果它包含/mnt和/media目录,这是否意味着它可能处于无限循环中?因为它会在写入/media文件夹时索引并开始存储它的内容。或者当扫描所有文件夹并将其带到内存中时,就会发生*.img的实际写入。

TL;DR:dd命令是否将/mnt和/media文件夹包括到图像中?

希望你能在这些问题上给我一些启发。谢谢。

设备规格:

  • Raspbian 32位,单驱动器(SD卡)。
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2021-07-20 00:36:16

dd对文件系统中的挂载、文件夹或unix文件结构一无所知。dd只知道原始数据以及原始数据和数据块的一些简单转换。它最初设计用于从设备(包括磁盘和磁带)读取和写入数据,并能够处理在阻塞数据和流数据之间来回更改该数据的结构,并进行一些琐碎的字符转换和填充调整。

在可写挂载文件系统的设备上运行dd if=是危险的,因为在dd读取文件系统时,该文件系统可能会改变。已读取的块dd可能会更改(dd未看到的更改),同时未读取的块也会被更改,其结果将是输出上文件系统的损坏图像。

由于dd是从(大概)固定大小的块设备读取的,并且在不了解底层文件系统的情况下读取它,如果要将输出写入同一个文件系统中的文件,则它不会是一个无限循环,但它会增加输出映像成为损坏文件系统的可能性和严重性。

由于安装在目录上的文件系统不是父文件系统的一部分(但(空的)目录是),它们将不在dd输出映像中(但是目录本身也是,如果挂载点在挂载之前不是空的,则可能包含在挂载点下的文件)。

票数 2
EN

Unix & Linux用户

发布于 2021-07-21 01:59:42

dd将从if (输入文件)读取并将其转储到of (输出文件),它将是"if“的二进制副本。这些文件可以是文件系统文件、文件系统本身、原始设备等等。这个命令不会从驻留在" if“中的数据结构中产生任何内容,如果它是一个文件系统,它将复制它,不管操作系统是否识别它。但是,不建议在安装的文件系统设备上运行它(例如if=/dev/sdb3 3)。

由于它是一点一点的复制,dd命令在到达远程共享的挂载点时不会识别,因此,没有无限循环,但我同意@ when 10489,这是危险的。

如果您试图备份根文件系统,我建议在另一个系统(提取您的卡)或从另一个卡启动它,并将备份放到远程位置或位于新根文件系统中的img文件。

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/659094

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档