注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

谷搜互联网应用www.iguso.com

谷搜专注企业邮箱十二年

 
 
 

日志

 
 

如何使用光碟写入工具备份  

2014-05-20 10:58:02|  分类: 技术文章 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

某些时刻你可能会希望将系统上最重要的资料给他备份出来,虽然目前随身碟已经有够便宜,你可以使用这玩意儿来备份。 不过某些重要的、需要重复备份的资料(可能具有时间特性),你可能会需要使用类似 DVD 之类的储存媒体来备份出来! 举例来说,你的系统设定档或者是讨论区的资料库档案(变动性非常的频繁)。虽然 Linux 图形介面已经有不少的烧录软体可用, 但有时如果你希望系统自动在某些时刻帮你主动的进行烧录时,那么文字介面的烧录行为就有帮助啦!

  那么文字模式的烧录行为要怎么处理呢?通常的作法是这样的:

  先将所需要备份的资料建置成为一个映像档(iso),利用 mkisofs 指令来处理;

  将该映像档烧录至光碟或 DVD 当中,利用 cdrecord 指令来处理。

  底下我们就分别来谈谈这两个指令的用法吧!

  mkisofs:建立映像档

  我们从 FTP 站捉下来的 Linux 映像档 (不管是 CD 还是 DVD) 都得要继续烧录成为实体的光碟/DVD 后, 才能够进一步的使用,包括安装或更新你的 Linux 啦!同样的道理,你想要利用烧录机将你的资料烧录到 DVD 时, 也得要先将你的资料包成一个映像档,这样才能够写入DVD片中。而将你的资料包成一个映像档的方式就透过 mkisofs 这个指令即可。 mkisofs 的使用方式如下:

  [root@www ~]# mkisofs [-o 映像档] [-rv] [-m file] 待备份档案.. [-V vol] \

  > -graft-point isodir=systemdir ...

  选项与参数:

  -o :后面接你想要产生的那个映像档档名。

主机空间特惠,英文域名注册

  -r :透过 Rock Ridge 产生支援 Unix/Linux 的档案资料,可记录较多的资讯;

  -v :显示建置 ISO 档案的过程

  -m file :-m 为排除档案 (exclude) 的意思,后面的档案不备份到映像档中

  -V vol :建立 Volume,有点像 Windows 在档案总管内看到的 CD title 的东西

  -graft-point:graft有转嫁或移植的意思,相关资料在底下文章内说明。

  其实 mkisofs 有非常多好用的选项可以选择,不过如果我们只是想要製作资料光碟时,上述的选项也就够用了。 光碟的格式一般称为 iso9660 ,这种格式一般仅支援旧版的 DOS 档名,亦即档名只能以 8.3 (档名8个字元,副档名3个字元) 的方式存在。如果加上 -r 的选项之后,那么档案资讯能够被记录的比较完整,可包括UID/GID与权限等等! 所以,记得加这个 -r 的选项。

  此外,一般预设的情况下,所有要被加到映像档中的档案都会被放置到映象档中的根目录, 如此一来可能会造成烧录后的档案分类不易的情况。所以,你可以使用 -graft-point 这个选项,当你使用这个选项之后, 可以利用如下的方法来定义位于映像档中的目录,例如:

  映像档中的目录所在=实际 Linux 档案系统的目录所在

  /movies/=/srv/movies/ (在 Linux 的 /srv/movies 内的档案,加至映像档中的 /movies/ 目录)

  /linux/etc=/etc (将 Linux 中的 /etc/ 内的所有资料备份到映像档中的 /linux/etc/ 目录中)

  我们透过一个简单的範例来说明一下吧。如果你想要将 /root, /home, /etc 等目录内的资料通通烧录起来的话, 先得要处理一下映像档,我们先不使用 -graft-point 的选项来处理这个映像档试看看:

  [root@www ~]# mkisofs -r -v -o /tmp/system.img /root /home /etc

  INFO: ISO-8859-1 character encoding detected by locale settings.

  Assuming ISO-8859-1 encoded filenames on source filesystem,

  use -input-charset to override.

  mkisofs 2.01 (cpu-pc-linux-gnu)

  Scanning /root

  Scanning /root/test4

  ....中间省略....

  97.01% done, estimate finish Tue Dec 16 17:07:14 2008 <==显示百分比

  98.69% done, estimate finish Tue Dec 16 17:07:15 2008

  Total translation table size: 0

  Total rockridge attributes bytes: 9840 <==额外记录属性所耗用之容量

  Total directory bytes: 55296 <==目录佔用容量

  Path table size(bytes): 406

  Done with: The File(s) Block(s) 298728

  Writing: Ending Padblock Start Block 298782

  Done with: Ending Padblock Block(s) 150

  Max brk space used 0

  298932 extents written (583 MB)

  [root@www ~]# ll -h /tmp/system.img

  -rw-r--r-- 1 root root 584M Dec 16 17:07 /tmp/system.img

  [root@www ~]# mount -o loop /tmp/system.img /mnt

  [root@www ~]# df -h

  Filesystem Size Used Avail Use% Mounted on

  /tmp/system.img 584M 584M 0 100% /mnt <==就是这玩意儿!

  [root@www ~]# ls /mnt

  alex crontab2 etc.tar.gz system.tar.bz2

  anaconda-ks.cfg etc install.log test1

  arod etc.and.root.tar.bz2 install.log.syslog test2

  boot.dump etc.dump loopdev test3

  # 看吧!一堆资料都放置在一起!包括有的没有的目录与档案等等!

  [root@www ~]# umount /mnt

  由上面的範例我们可以看到,叁个目录 (/root, /home, /etc) 的资料通通放置到了映像档的最顶层目录中! 真是不方便~尤其由于 /root/etc 的存在,导致那个 /etc 的资料似乎没有被包含进来的样子!真不合理~ 而且还有 lost+found 的目录存在!真是超不喜欢的!此时我们可以使用 -graft-point 来处理啰!

  [root@www ~]# mkisofs -r -V 'linux_file' -o /tmp/system.img \

  > -m /home/lost+found -graft-point /root=/root /home=/home /etc=/etc

  [root@www ~]# ll -h /tmp/system.img

  -rw-r--r-- 1 root root 689M Dec 17 11:41 /tmp/system.img

  # 上面的指令会建立一个大档案,期中 -graft-point 后面接的就是我们要备份的资料。

  # 必须要注意的是那个等号的两边,等号左边是在映像档内的目录,右侧则是实际的资料。

  [root@www ~]# mount -o loop /tmp/system.img /mnt

  [root@www ~]# ll /mnt

  dr-xr-xr-x 105 root root 32768 Dec 17 11:40 etc

  dr-xr-xr-x 5 root root 2048 Dec 17 11:40 home

  dr-xr-xr-x 7 root root 4096 Dec 17 11:40 root

  # 瞧!资料是分门别类的在各个目录中喔这样瞭解乎?最后将资料卸载一下:

  [root@www ~]# umount /mnt

  其实鸟哥一直觉得很奇怪,怎么我的资料会这么大(600多MB)?塬来是 /home 裡面在第八章的时候,练习时多了一个 /home/loopdev 的大档案!所以在重新製作一次 iso 档,并多加一个『 -m /home/loopdev 』来排除该档案的备份, 最终的档案则仅有 176MB 啰!还好还好! ^_^!接下来让我们处理烧录的动作了吧!

  cdrecord:光碟烧录工具

  我们是透过 cdrecord 这个指令来进行文字介面的烧录行为,这个指令常见的选项有底下数个:

  [root@www ~]# cdrecord -scanbus dev=ATA <==查询烧录机位置

  [root@www ~]# cdrecord -v dev=ATA:x,y,z blank=[fast|all] <==抹除重复读写片

  [root@www ~]# cdrecord -v dev=ATA:x,y,z -format <==格式化DVD+RW

  [root@www ~]# cdrecord -v dev=ATA:x,y,z [可用选项功能] file.iso

  选项与参数:

  -scanbus :用在扫瞄磁碟匯流排并找出可用的烧录机,后续的装置为 ATA 介面

  -v :在 cdrecord 运作的过程中,显示过程而已。

  dev=ATA:x,y,z :后续的 x, y, z 为你系统上烧录机所在的位置,非常重要!

  blank=[fast|all]:blank 为抹除可重复写入的CD/DVD-RW,使用fast较快,all较完整

  -format :仅针对 DVD+RW 这种格式的 DVD 而已;

  [可用选项功能] 主要是写入 CD/DVD 时可使用的选项,常见的选项包括有:

  -data :指定后面的档案以资料格式写入,不是以 CD 音轨(-audio)方式写入!

  speed=X :指定烧录速度,例如CD可用 speed=40 为40倍数,DVD则可用 speed=4 之类

  -eject :指定烧录完毕后自动煺出光碟

  fs=Ym :指定多少缓衝记忆体,可用在将映像档先暂存至缓衝记忆体。预设为 4m,

  一般建议可增加到 8m ,不过,还是得视你的烧录机而定。

  针对 DVD 的选项功能:

  driveropts=burnfree :打开 Buffer Underrun Free 模式的写入功能

  -sao :支援 DVD-RW 的格式

  侦测你的烧录机所在位置:

  文字模式的烧录确实是比较麻烦的,因为没有所见即所得的环境嘛!要烧录首先就得要找到烧录机才行! 而由于早期的烧录机都是使用 SCSI 介面,因此查询烧录机的方法就得要配合着 SCSI 介面的认定来处理了。 查询烧录机的方式为:

  [root@www ~]# cdrecord -scanbus dev=ATA

  Cdrecord-Clone 2.01 (cpu-pc-linux-gnu) Copyright (C) 1995-2004 J?rg Schilling

  ....中间省略....

  scsibus1:

  1,0,0 100) *

  1,1,0 101) 'ASUS ' 'DRW-2014S1 ' '1.01' Removable CD-ROM

  1,2,0 102) *

  1,3,0 103) *

  1,4,0 104) *

  1,5,0 105) *

  1,6,0 106) *

  1,7,0 107) *

  利用 cdrecord -scanbus 就能够找到正确的烧录机!由于目前个人电脑上最常使用的磁碟机介面为 IDE 与 SATA , 这两种介面都能够使用 dev=ATA 这种模式来查询,因此上述的指令得要背一下啦!另外,在查询的结果当中可以发现有一台烧录机, 其中也显示出这台烧录机的型号,而最重要的就是上表中有底线的那叁个数字!那叁个数字就是代表这台烧录机的位置! 以上表的例子中,这部烧录机的位置在『 ATA:1,1,0 』这个地方喔!

  好了,那么现在要如何将 /tmp/system.img 烧录到 CD/DVD 裡面去呢?鸟哥这裡先以 CD 为例,鸟哥用的是 CD-RW (可重复读写) 的光碟片,说实在话,虽然 CD-RW 或 DVD-RW 比较贵一点,不过至少可以重复利用, 对环境的衝击比较小啦!建议大家使用可重复读写的片子。由于 CD-RW 可能要先进行抹除的工作(将塬本裡面的资料删除)然后才能写入, 因此,底下我们先来看看如何抹除一片 CD/DVD 的方法,然后直接写入光碟吧!

  Tips:

  由于 CD/DVD 都是使用 cdrecord 这个指令,因此不论是 CD 还是 DVD 片,下达指令的方法都差不多!不过, DVD 的写入需要额外的 driveropts=burnfree 或 -dao 等选项的辅助才行。 另外,CD 片有 CD-R(一次写入) 与 CD-RW(重复写入),至于 DVD 则主要有两种格式,分别是 DVD-R 及 DVD+R 两种格式。 如果是可重复读写的则为: DVD-RW, DVD+RW 。除了 DVD+RW 的抹除方法可能不太一样之外,其他写入的方式则是一样的。

  进行 CD 的烧录动作:

  # 0. 先抹除光碟的塬始内容:(非可重复读写则可略过此步骤)

  [root@www ~]# cdrecord -v dev=ATA:1,1,0 blank=fast

  # 中间会跑出一堆讯息告诉你抹除的进度,而且会有 10 秒鐘的时间等待你的取消!

  # 可以避免『手滑』的情况!^_^

  # 1. 开始烧录:

  [root@www ~]# cdrecord -v dev=ATA:1,1,0 fs=8m -dummy -data \

  > /tmp/system.img

  ....中间省略....

  Track 01: 168 of 176 MB written (fifo 100%) [buf 100%] 10.5x. <==显示百分比

  # 上面会显示进度,还有 10.5x 代表目前的烧录速度!

  cdrecord: fifo had 2919 puts and 2919 gets.

  cdrecord: fifo was 0 times empty and 2776 times full, min fill was 97%.

  # 2. 烧录完毕后,测试挂载一下,检验内容:

  [root@www ~]# mount -t iso9660 /dev/cdrom /mnt

  [root@www ~]# df -h /mnt

  Filesystem Size Used Avail Use% Mounted on

  /dev/hdd 177M 177M 0 100% /mnt <==瞧!确实是光碟内容!

  [root@www ~]# ll /mnt

  dr-xr-xr-x 105 root root 32768 Dec 17 11:54 etc

  dr-xr-xr-x 5 root root 2048 Dec 17 11:54 home

  dr-xr-xr-x 7 root root 4096 Dec 17 11:54 root

  [root@www ~]# umount /mnt <==不要忘了卸载

  事实上如果你忘记抹除可写入光碟时,其实 cdrecord 很聪明的会主动的帮你抹除啦! 因此上面的资讯你只要记得烧录的功能即可。特别注意 -data 那个选项!因为如果没有加上 -data 的选项时, 预设资料会以音轨格式写入光碟中,所以最好能够加上 -data 这个选项啰! 上述的功能是针对 CD ,底下我们使用一片可重复读写的 DVD-RW 来测试一下写入的功能!

  进行 DVD-RW 的烧录动作:

  # 0. 同样的,先来抹除一下塬本的内容:

  [root@www ~]# cdrecord -v dev=ATA:1,1,0 blank=fast

  # 1. 开始写入 DVD ,请注意,有些选项与 CD 并不相同了喔!

  [root@www ~]# cdrecord -v dev=ATA:1,1,0 fs=8m -data -sao \

  > driveropts=burnfree /tmp/system.img

  # 2. 同样的,来给他测试测试!

  [root@www ~]# mount /dev/cdrom /mnt

  [root@www ~]# df -h /mnt

  Filesystem Size Used Avail Use% Mounted on

  /dev/hdd 177M 177M 0 100% /mnt

  [root@www ~]# umount /mnt

  整体指令没有差很多啦!只是 CD-RW 会自动抹除,但 DVD-RW 似乎得要自己手动某除才行!并不会主动进入自动抹除的功能! 害鸟哥重新测试过好几次~伤脑筋~ ^_^!好啦!现在你就知道如何将你的资料烧录出来啦!

  如果你的 Linux 是用来做为伺服器之用的话,那么无时无刻的去想『如何备份重要资料』是相当重要的! 关于备份我们会在第五篇再仔细的谈一谈,这裡你要会使用这些工具即可!


文章源自谷搜企业邮箱服务商 如何使用光碟写入工具备份
  评论这张
 
阅读(7)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017