📄 backup-basics.html
字号:
<p>第一,打出你的每个磁盘驱动器的磁盘标签(例如: <tt class="COMMAND">disklabel da0 |lpr</tt>),文件系统表, (<tt class="FILENAME">/etc/fstab</tt>),以及所有启动信息,并将每个拷贝 两份。</p><p>第二,确定遇到的情况时,用来启动及修复的软盘 (<tt class="FILENAME">boot.flp</tt> 和<tt class="FILENAME">fixit.flp</tt>)具有你所有的设备代号。最简单的方法是用软盘启动,然后检查启动信息,如果设备都被列出,并且可以正常使用,就可以跳到第三步。</p><p>否则,必须建立两张传统的可启动软盘,并包含: <tt class="COMMAND">fdisk</tt>, <ttclass="COMMAND">disklabel</tt>, <tt class="COMMAND">newfs</tt>, <ttclass="COMMAND">mount</tt>, 以及所有使用的备份程序。这些程序必须被静态的连接。如果使用的是 <tt class="COMMAND">dump</tt>,那么这张软盘就必须包含 <tt class="COMMAND">restore</tt>。</p><p>第三,定期将数据备份到磁带。任何在上次备份后的改变都无法恢复。记得将 磁盘写保护。</p><p>第四,测试在第二步所建立的软盘及备份的磁带,将过程记录下来,并和这张可启动的软盘和磁带放在一起。也许你在恢复时会想要,而这份记录将防止你破坏 你的磁带(怎么说呢?因为你可能将 <tt class="COMMAND">tar xvf /dev/sa0</tt> 打成 <ttclass="COMMAND">tar cvf /dev/sa0</tt> 而重写了备份磁带)。</p><p>为了安全,你可以每次都做两份备份磁带及一张启动磁盘,并将其中一份备份磁带存放在其它地方。其它地方不是指同一栋办公大楼的地下室(世贸中心的一些公司应该学到了一些教训),而是真的要让人的磁带离你 的的计算机远远的。</p><div class="EXAMPLE"><a id="AEN24602" name="AEN24602"></a><p><b>例子 16-3. 一个建立启动磁盘的 shell 脚本例子:</b></p><pre class="PROGRAMLISTING">#!/bin/sh## create a restore floppy## format the floppy#PATH=/bin:/sbin:/usr/sbin:/usr/binfdformat -q fd0if [ $? -ne 0 ]then echo "Bad floppy, please use a new one" exit 1fi# place boot blocks on the floppy#disklabel -w -B /dev/fd0c fd1440## newfs the one and only partition#newfs -t 2 -u 18 -l 1 -c 40 -i 5120 -m 5 -o space /dev/fd0a## mount the new floppy#mount /dev/fd0a /mnt## create required directories#mkdir /mnt/devmkdir /mnt/binmkdir /mnt/sbinmkdir /mnt/etcmkdir /mnt/rootmkdir /mnt/mnt # for the root partitionmkdir /mnt/tmpmkdir /mnt/var## populate the directories#if [ ! -x /sys/compile/MINI/kernel ]then cat << EOMThe MINI kernel does not exist, please create one.Here is an example config file:## MINI -- A kernel to get FreeBSD onto a disk.#machine "i386"cpu "I486_CPU"ident MINImaxusers 5options INET # needed for _tcp _icmpstat _ipstat # _udpstat _tcpstat _udboptions FFS #Berkeley Fast File Systemoptions FAT_CURSOR #block cursor in syscons or pcconsoptions SCSI_DELAY=15 #Be pessimistic about Joe SCSI deviceoptions NCONS=2 #1 virtual consolesoptions USERCONFIG #Allow user configuration with -c XXXconfig kernel root on da0 swap on da0 and da1 dumps on da0device isa0device pci0device fdc0 at isa? port "IO_FD1" bio irq 6 drq 2 vector fdintrdevice fd0 at fdc0 drive 0device ncr0device scbus0device sc0 at isa? port "IO_KBD" tty irq 1 vector scintrdevice npx0 at isa? port "IO_NPX" irq 13 vector npxintrdevice da0device da1device da2device sa0pseudo-device loop # required by INETpseudo-device gzip # Exec gzipped a.out'sEOM exit 1ficp -f /sys/compile/MINI/kernel /mntgzip -c -best /sbin/init > /mnt/sbin/initgzip -c -best /sbin/fsck > /mnt/sbin/fsckgzip -c -best /sbin/mount > /mnt/sbin/mountgzip -c -best /sbin/halt > /mnt/sbin/haltgzip -c -best /sbin/restore > /mnt/sbin/restoregzip -c -best /bin/sh > /mnt/bin/shgzip -c -best /bin/sync > /mnt/bin/synccp /root/.profile /mnt/rootcp -f /dev/MAKEDEV /mnt/devchmod 755 /mnt/dev/MAKEDEVchmod 500 /mnt/sbin/initchmod 555 /mnt/sbin/fsck /mnt/sbin/mount /mnt/sbin/haltchmod 555 /mnt/bin/sh /mnt/bin/syncchmod 6555 /mnt/sbin/restore## create the devices nodes#cd /mnt/dev./MAKEDEV std./MAKEDEV da0./MAKEDEV da1./MAKEDEV da2./MAKEDEV sa0./MAKEDEV pty0cd /## create minimum file system table#cat > /mnt/etc/fstab <<EOM/dev/fd0a / ufs rw 1 1EOM## create minimum passwd file#cat > /mnt/etc/passwd <<EOMroot:*:0:0:Charlie &:/root:/bin/shEOMcat > /mnt/etc/master.passwd <<EOMroot::0:0::0:0:Charlie &:/root:/bin/shEOMchmod 600 /mnt/etc/master.passwdchmod 644 /mnt/etc/passwd/usr/sbin/pwd_mkdb -d/mnt/etc /mnt/etc/master.passwd## umount the floppy and inform the user#/sbin/umount /mntecho "The floppy has been unmounted and is now ready."</pre></div></div><div class="SECT3"><h3 class="SECT3"><a id="AEN24605" name="AEN24605">16.11.8.2. 出现灾难后</a></h3><p>主要的问题在于:你的硬件有用吗?由于已经做好了定期的备份工作,就不必担心软件的问题。</p><p>如果硬件已经损坏,首先,必须先将已损坏的硬件换掉。</p><p>如果硬件没有问题,再检查一下你的软盘。如果用的是传统的启动盘, 以 single-user 启动(在出现 <samp class="PROMPT">boot:</samp> 后键入 <var class="LITERAL">-s</var> ),并跳过下面这段。</p><p>如果使用的是具有 <tt class="FILENAME">boot.flp</tt> 和 <ttclass="FILENAME">fixit.flp</tt> 的启动磁盘,首先用这张磁盘启动。当屏幕出现安装选单时,选择 <var class="LITERAL">Fixit--Repair mode with CDROM or floppy.</var>。根据屏幕的提示,插入有 <tt class="FILENAME">fixit.flp</tt> 的磁盘, <ttclass="COMMAND">restore</tt> ,其他需要用到的程序就会出现在 <ttclass="FILENAME">/mnt2/stand</tt>。</p><p>分别恢复每一个文件系统</p><p>试着 <tt class="COMMAND">mount</tt> 上你的第一个磁盘的 root 分区(例如: <ttclass="COMMAND">mount /dev/da0a /mnt</tt>)。假如这个磁盘标签已经损坏,使用 <ttclass="COMMAND">disklabel</tt> 来重新分割并分配磁盘标签(利用你以前保留下来的数据)。使用<tt class="COMMAND">newfs</tt> 来建立文件系统,并重新挂上软盘读写的 root 分区 (<ttclass="COMMAND">mount -u -o rw /mnt</tt>)。然后使用备份程序及备份磁带来修复文件系统(例如: <tt class="COMMAND">restore vrf /dev/sa0</tt>)。最后 Unmount 这个文件系统 (例如:<tt class="COMMAND">umount /mnt</tt>)。对于每个损坏的文件系统都重复一次。</p><p>当你的系统正常启动后,将你的数据备份到新的磁带。任何造成数据丢失的的灾难都可能再次发生。现在花一些时间,也许可以使你免于下次的灾难。</p></div></div></div><div class="NAVFOOTER"><hr align="LEFT" width="100%" /><table summary="Footer navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="backups-floppybackups.html"accesskey="P">后退</a></td><td width="34%" align="center" valign="top"><a href="index.html"accesskey="H">起点</a></td><td width="33%" align="right" valign="top"><a href="disks-virtual.html"accesskey="N">前进</a></td></tr><tr><td width="33%" align="left" valign="top">用软盘备份</td><td width="34%" align="center" valign="top"><a href="disks.html"accesskey="U">上一级</a></td><td width="33%" align="right" valign="top">Network, Memory, and File-Backed FileSystems</td></tr></table></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -