mirror of
https://github.com/LCTT/TranslateProject.git
synced 2025-01-25 23:11:02 +08:00
校对完毕
校对完毕 谢谢!
This commit is contained in:
parent
101b0e3aef
commit
cf139f585b
@ -1,7 +1,7 @@
|
||||
分区备份
|
||||
============
|
||||
|
||||
通常你可能会把数据放在一个分区上,尤其是通用串行总线(USB)设备。有时候可能需要对该设备或者上面的一个分区进行备份。树莓派用户为了可引导 SD 卡当然有这个需求。其它小型机的用户也会发现这非常有用。有时候设备看起来要出现故障时最好快速做个备份。
|
||||
通常你可能会把数据放在一个分区上,尤其是通用串行总线(USB)设备上。有时候可能需要对该设备或者上面的一个分区进行备份。树莓派用户为了可引导 SD 卡当然有这个需求。其它小型机的用户也会发现这非常有用。有时候设备看起来要出现故障时最好快速做个备份。
|
||||
|
||||
进行本文中的实验你需要一个叫 ‘dcfldd’ 的工具。
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
|
||||
该工具是 'coreutils' 软件包中 ‘dd’ 工具的增强版。‘dcfldd’ 是 Nicholas Harbour 在国防部计算机取证实验室(DCFL)工作期间研发的。该工具的名字也基于他工作的地方 - ‘dcfldd’。
|
||||
|
||||
对于仍然在使用 CoreUtils 8.23 或更低版本的系统,无法轻松查看正在创建副本的进度。有时候看起来就像什么都没有发生然后你就想取消掉备份。
|
||||
对于仍然在使用 CoreUtils 8.23 或更低版本的系统,没有选项可以轻松查看正在创建副本的进度。有时候看起来就像什么都没有发生,然后你就想取消掉备份。
|
||||
|
||||
**注意:**如果你使用 8.24 或更新版本的 ‘dd’ 工具,你就不需要使用 ‘dcfldd’,只需要用 ‘dd’ 替换 ‘dcfldd’ 即可。所有其它参数仍然适用。
|
||||
|
||||
@ -41,13 +41,13 @@ dcfldd --version_
|
||||
|
||||
备份设备的时候可以备份整个设备也可以只是其中的一个分区。如果设备有多个分区,我们可以分别备份每个分区。
|
||||
|
||||
在进行备份之前,先让我们来看一下设备和分区的区别。假设我们有一个已经被格式化为一大块设备 SD 卡。SD 卡只有一个分区。如果空间被切分使得 SD 卡看起来是两个设备,那么它就有两个分区。如果用类似 GParted 的程序打开 SD 卡,如图 1 所示,你可以看到它有两个分区。
|
||||
在进行备份之前,先让我们来看一下设备和分区的区别。假设我们有一个已经被格式化为一个大磁盘的 SD 卡。这个 SD 卡只有一个分区。如果空间被切分使得 SD 卡看起来是两个设备,那么它就有两个分区。如果用类似 GParted 的程序打开 SD 卡,如图 1 所示,你可以看到它有两个分区。
|
||||
|
||||
**图 1**
|
||||
|
||||
设备 /dev/sdc 有 /dev/sdc1 和 /dev/sdc2 两个分区。
|
||||
|
||||
假设我们有一个树莓派中的 SD 卡。SD 卡容量为 8 GB,有两个分区(如图 1 所示)。第一个分区存放 BerryBoot 启动引导器。第二个分区存放 Kali(译者注:Kali Linux 是一个 Debian 派生的 Linux 发行版)。现在已经没有可用的空间用来安装第二个操作系统。我们使用大小为 16 GB 的第二个 SD 卡,但拷贝到第二个 SD 卡之前第一个 SD 卡必须先备份。
|
||||
假设我们有一个树莓派中的 SD 卡。SD 卡容量为 8 GB,有两个分区(如图 1 所示)。第一个分区存放 BerryBoot 启动引导器。第二个分区存放 Kali(LCTT 译注:Kali Linux 是一个 Debian 派生的 Linux 发行版)。现在已经没有可用的空间用来安装第二个操作系统。我们使用大小为 16 GB 的第二个 SD 卡,但拷贝到第二个 SD 卡之前,第一个 SD 卡必须先备份。
|
||||
|
||||
要备份第一个 SD 卡我们需要备份设备 /dev/sdc。进行备份的命令如下所示:
|
||||
|
||||
@ -57,7 +57,7 @@ _dcfldd if=/dev/sdc of=/tmp/SD-Card-Backup.img_
|
||||
|
||||
‘dd’ 和 ‘dcfldd’ 都是每次读写文件中的一个字节。通过上述命令,它一次读写的默认值为 512 个字节。记住,该复制是一个精准的拷贝 - 逐位逐字节。
|
||||
|
||||
默认的 512 个字节可以通过块大小参数 - ‘bs=’ 更改。例如,要每次读写 1 兆字节,参数为 ‘bs=1M’。以下所用的缩写有一些差异:
|
||||
默认的 512 个字节可以通过块大小参数 - ‘bs=’ 更改。例如,要每次读写 1 兆字节,参数为 ‘bs=1M’。以下所用的缩写可能会有一些差异:
|
||||
|
||||
* b – 512 字节
|
||||
* KB – 1000 字节
|
||||
@ -69,9 +69,9 @@ _dcfldd if=/dev/sdc of=/tmp/SD-Card-Backup.img_
|
||||
|
||||
你也可以单独指定读和写的块大小。要指定读块的大小使用 ‘ibs=’。要指定写块的大小使用 ‘obs=’。
|
||||
|
||||
我使用三个不同的块大小做了一个 120 MB 分区的备份测试。第一个时候默认的 512 字节,它用了 7 秒钟。第二个块大小为 1024 K,它用时 2 秒。第三个块大小是 2048 K,它用时 3 秒。用时会随系统以及其它硬件实现的不同而变化,但通常来说更大的块大小会比默认的稍微快一点。
|
||||
我使用三种不同的块大小做了一个 120 MB 分区的备份测试。第一次使用默认的 512 字节,它用了 7 秒钟。第二次块大小为 1024 K,它用时 2 秒。第三次块大小是 2048 K,它用时 3 秒。用时会随系统以及其它硬件实现的不同而变化,但通常来说更大的块大小会比默认的稍微快一点。
|
||||
|
||||
一旦你完成了一次备份,你还需要知道如何把数据恢复到设备中。
|
||||
完成备份后,你还需要知道如何把数据恢复到设备中。
|
||||
|
||||
**恢复分区**
|
||||
|
||||
@ -85,7 +85,7 @@ _dcfldd of=/dev/sdc if=/tmp/SD-Card-Backup.img_
|
||||
|
||||
**注意:** 要记住输出设备会被重写,它上面的所有数据都会丢失。通常来说在恢复数据之前最好用 GParted 删除 SD 卡上的所有分区。
|
||||
|
||||
假如你在使用多个 SD 卡,例如多个树莓派主板,你可以一次性写多块 SD 卡。为了做到这点你需要知道系统中卡的 ID。例如,假设我们想把镜像 ‘BerryBoot.img’ 拷贝到两个 SD 卡。SD 卡分别是 /dev/sdc 和 /dev/sdd。下面的命令在显示进度时每次读写 1 MB 的块。命令如下:
|
||||
假如你在使用多个 SD 卡,例如多个树莓派主板,你可以一次性写多块 SD 卡。为了做到这点,你需要知道系统中卡的 ID。例如,假设我们想把镜像 ‘BerryBoot.img’ 拷贝到两个 SD 卡。SD 卡分别是 /dev/sdc 和 /dev/sdd。下面的命令在显示进度时每次读写 1 MB 的块。命令如下:
|
||||
|
||||
_dcfldd if=BerryBoot.img bs=1M status=progress | tee >(dcfldd of=/dev/sdc) | dcfldd of=/dev/sdd_
|
||||
|
||||
@ -97,9 +97,9 @@ _dcfldd if=BerryBoot.img bs=1M status=progress | tee >(dcfldd of=/dev/sdc) | dcf
|
||||
|
||||
**验证数据**
|
||||
|
||||
一旦创建了一个镜像或者恢复了一个备份,你可以验证这些写的数据。要验证数据你会使用名为 ‘_diff_’ 的领一个不同程序。
|
||||
一旦创建了一个镜像或者恢复了一个备份,你可以验证这些写入的数据。要验证数据,你会使用名为 ‘_diff_’ 的另一个不同程序。
|
||||
|
||||
使用 ‘diff’ 你需要指定镜像文件的位置以及系统中拷贝自或写入的物理媒介。你可以在创建备份或者恢复了一个镜像之后使用 ‘_diff_’ 命令。
|
||||
使用 ‘diff’ ,你需要指定镜像文件的位置以及系统中拷贝自或写入的物理媒介。你可以在创建备份或者恢复了一个镜像之后使用 ‘_diff_’ 命令。
|
||||
|
||||
该命令有两个参数。第一个是物理媒介,第二个是镜像文件名称。
|
||||
|
||||
@ -117,11 +117,11 @@ _diff /dev/sdc /tmp/SD-Card-Backup.img_
|
||||
|
||||
必须做的是文件必须被切分为 4 GB 的分片。通过管道(|)将数据传输给 ‘_split_’ 命令可以切分正在被写的镜像文件。
|
||||
|
||||
创建备份的方法相同,但命令会包括管道和切分命令。对于命令为 ‘_dcfldd if=/dev/sdc of=/tmp/SD-Card-Backup.img_’ 的事例备份,切分文件的新命令如下:
|
||||
创建备份的方法相同,但命令会包括管道和切分命令。示例备份命令为 ‘_dcfldd if=/dev/sdc of=/tmp/SD-Card-Backup.img_’ ,其切分文件的新命令如下:
|
||||
|
||||
_dcfldd if=/dev/sdc | split -b 4000MB - /tmp/SD-Card-Backup.img_
|
||||
|
||||
**注意:** 大小后缀和 ‘_dd_’ 及 ‘_dcfldd_’ 命令的意义相同。 ‘_split_’ 命令中的破折号用于将通过管道从 ‘_dcfldd_’ 命令传输过来的数据填充到输入文件。
|
||||
**注意:** 大小后缀和对 ‘_dd_’ 及 ‘_dcfldd_’ 命令的意义相同。 ‘_split_’ 命令中的破折号用于将通过管道从 ‘_dcfldd_’ 命令传输过来的数据填充到输入文件。
|
||||
|
||||
文件会被保存为 ‘_SD-Card-Backup.imgaa_’ 和 ‘_SD-Card-Backup.imgab_’,如此类推。如果你担心文件大小太接近 4 GB 的限制,可以试着用 3500MB。
|
||||
|
||||
@ -129,7 +129,7 @@ _dcfldd if=/dev/sdc | split -b 4000MB - /tmp/SD-Card-Backup.img_
|
||||
|
||||
_cat /tmp/SD-Card-Backup.img* | dcfldd of=/dev/sdc_
|
||||
|
||||
你可以在 “_dcfldd_” 命令中包含任何需要的参数。
|
||||
你可以在命令中 “_dcfldd_” 部分包含任何需要的参数。
|
||||
|
||||
我希望你了解并能执行任何需要的数据备份和恢复,正如 SD 卡和类似设备所需的那样。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user