备份和数据恢复精要,第 2 部分
本周,我将冒险做一个粗略的概括。 如果你准备好了,这就是。 令人惊讶的是,许多 Linux 用户和管理员都拥有 CD 可重写驱动器,但没有磁带驱动器。 您很高兴地刻录 CD 来制作您最喜欢的歌曲集,但您是否考虑过使用它来创建数据备份?
快速回顾一下。 这是内幕消息。 有正确进行备份的方法,但我想从最坏的情况开始到最好的情况。 意思是,很快我们将谈论磁带驱动器。 有些人可能会争辩说“磁带驱动器”听起来像是处理数据存储的过时方法。 我将在下周回答这个挑战。 现在,我将假装您的系统上有一个 CD 可刻录单元,并向您展示如何使用它进行备份。
关于 CD-RW 是否是好的备份选择的问题有时会以这种方式解决。 您可以负担得起磁带驱动器(有时比 CD-RW 更贵)或磁带。 当我们的机器用于商业和娱乐时,就像家庭办公室经常发生的那样,我们倾向于倾向于“两者我都想要”的方向。
制作最喜欢的歌曲集和刻录额外的 Slackware 或 Debian CD 通常使用名为 cdrecord 的东西完成。 cdrecord 不是专门的 Linux 软件,它将在许多不同的平台上编译和运行。 如果您还没有 cdrecord(也许您昨晚刚买了一台 CD-RW),您可以在以下地址获取最新副本
http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdrecord.html
如果您想使用您的驱动器,您需要的另一件事是一个名为 mkisofs 的小软件包。 幸运的是,最新版本的 cdrecord 已经包含了 mkisofs,但它仍然可以在以下地址获得
ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/
我将基于我们正在进行此讨论的前提,即您已经拥有一个可工作的 CD 刻录机设置。 您买到了一个好东西; 刻录机制作了很棒的歌曲集,现在您认为使用相同的设备进行备份是个好主意。
使用 CD 刻录机和重写器进行备份的问题在于,它们从未打算用于此目的。 基于您打算捕获的数据镜像的原始映像被写入磁盘。 然后,您将该映像写回您的 CD 或 CD-RW。 本质上,您需要两倍的可用空间来备份。 对于像 650 兆字节这样的完整 CD,您必须有 1.3 千兆字节的空间。 这不一定是进行备份的最友好的方式(当然也不是 空间最友好的)。 幸运的是,有一种方法可以将必要的空间减少一半,并且仍然完成备份。 在速度足够快的系统上,您可以简单地将正在创建的 iso9660 映像数据直接传递给 cdrecord 命令。 这意味着我们不需要有双倍的可用空间,备份树和一个 ISO 映像,然后刻录到 CD 上。
一种方法是加强上周的身份备份脚本。 如果您还记得,我们创建了一个临时目录,其中包含重要数据的分层“镜像”,然后将较小的镜像备份到软盘。 在该脚本中,我给出了一个非常小的文件列表,并建议您对什么是“重要”的选择可能与我的不同。 毕竟,您可以在单张软盘上容纳大约 1.4 兆字节,而我的示例身份备份仅使用了 37K。
使用 CD-RW,我们可以将大小增加到大约 650 兆字节,这可能是您日常更改所需的一切。 请记住注意事项(或现在的一半注意事项):您仍然需要 650 兆字节的备用空间,您可以在其中重建要备份的结构。 我们并没有那么容易摆脱困境。 如果您计划仅备份 300 兆字节的数据,那么您将需要 300 兆字节的空间。 记住上周示例的好处是,它是一个微观示例,说明我们即将在此处执行的操作。
我们首先创建我们的镜像。 在这种情况下,它是一个名为 /mnt/data1/data_backup 的目录。 在我的系统上,/mnt/data1 是一个具有相当多可用空间的独立驱动器。 这是我保存 Linux CD 映像的地方,然后我将这些映像推送给我的朋友,以努力让他们摆脱那个 其他操作系统。 在您的系统上,镜像很可能位于不同的位置。 只需确保空间可用即可。 这是该脚本。
#!/bin/bash # script name : backup_to_cd # This script does a backup of important files onto the CD-RW # Marcel Gagne, 2000 # # NOTE: my "data mirror" is /mnt/data1/data_backup # echo "Starting by Blanking the data_backup area" rm -rf /mnt/data1/data_backup echo "Recreating the data_backup mirror ..." mkdir /mnt/data1/data_backup mkdir /mnt/data1/data_backup/usr mkdir /mnt/data1/data_backup/etc # echo "Backing up to data1 disk mirror area ..." cd / find home -print | cpio -pduvm /mnt/data1/data_backup find root -print | cpio -pduvm /mnt/data1/data_backup find usr/local -print | cpio -pduvm /mnt/data1/data_backup/usr # echo "Backing up system identity." cd /etc for ident_names in passwd group shadow profile bashrc sendmail.cw sendmail.cf hosts hosts.allow hosts.deny named.conf named.boot aliases do cp -v $ident_names /mnt/data1/data_backup/etc done find nsdata -print | cpio -pduvm /mnt/data1/data_backup/etc find sysconfig -print | cpio -pduvm /mnt/data1/data_backup/etc find mgetty+sendfax -print | cpio -pduvm /mnt/data1/data_backup/etc # echo "All files saved. Ready to begin CD copy." echo "Shall I blank the CD first?" read the_answer # cdrecord -blank=fast dev=3,0 # echo "Shall I start the CD burn now?" read the_answer # mkisofs -R /mnt/data1/data_backup | cdrecord -v dev=3,0 -
请注意,在我的 /mnt/data1/data-backup 镜像中,我正在捕获 /home、/usr/local 和 /root,这些我在最初的 identity_backup 脚本中都没有太在意。 创建镜像后,我们立即将数据刻录到我们的磁盘。
是吗? 啊。 后排的读者有一个很好的观点。 我在空白和复制 CD 的那些提示(它说 read the_answer 的地方)中并没有真正做任何事情,只是暂停。 由于我的镜像中的数据量可能非常动态,更不用说非常巨大,我希望有机会执行 du -sk /mnt/data1/data_backup 来验证我是否保持在 650 兆字节的限制内。
回到脚本。 由于我使用的是可重写 CD,因此我在开始之前将 CD 空白。 这是通过以下行完成的
cdrecord -blank=fast dev=3,0
我使用 -blank=fast 选项快速擦除磁盘的目录表。 您可以选择空白整个磁盘,但这可能需要很长时间。
真正的魔力发生在脚本的末尾,即“mkisofs”和“cdrecord”。 mkisofs 上的 -R 选项表示我希望使用 Rock Ridge 扩展。 换句话说,一个 UNIX 文件系统,具有用户和组信息、长文件名支持等。 大概就是这样。 还有一件事:就像我们在上一个示例中一样,此脚本旨在作为您自己的 CD 备份的起点。 我认为在我的备份中重要的内容可能与您的 大相径庭。
对于好奇的人,这是创建 CD 的正常事件链。 您将让 mkisofs 写出一个 ISO9660 映像,然后将其记录在 CD 上。 然后,到 CD 的最终备份将分两个阶段进行。 例如,命令将是
# First we create the image based on a previously done "mirror" backup mkisofs -o /another_dir/image.iso -R /mnt/data1/data_backup # Now, we record the image to CD cdrecord -v dev=3,0 /another_dir/image.iso
顺便说一句,如果您磁盘上有一些 ISO 映像(您朋友的备用 Linux CD 等),您可以挂载这些映像并像浏览任何 CD 文件系统一样浏览它们。 方法如下。 假设您的 debian.iso 映像在那里,您想查看它。 首先,您创建一个挂载点 (mkdir /mnt/debdist)。 接下来,使用此命令,您可以挂载映像
mount debian.iso -r -t iso9660 -o loop /mnt/debdist
-r 选项表示 只读。 如您所见,它非常像 CD 文件系统。
下次,我将接受早期的挑战,向您展示为什么磁带仍然是关键所在,以及这些“老式”设备有多么灵活。 关于这一点,我们在这里在本周的角落结束。 在我们再次聊天之前,请记住,当您失落时,只有良好的备份才能让您重新站起来。
电子邮件:ljeditors@ssc.com