⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 backup-basics.html

📁 这是很好的学习嵌入式LINUX的文章
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<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 &#60;&#60; 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 &#62; /mnt/sbin/initgzip -c -best /sbin/fsck &#62; /mnt/sbin/fsckgzip -c -best /sbin/mount &#62; /mnt/sbin/mountgzip -c -best /sbin/halt &#62; /mnt/sbin/haltgzip -c -best /sbin/restore &#62; /mnt/sbin/restoregzip -c -best /bin/sh &#62; /mnt/bin/shgzip -c -best /bin/sync &#62; /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 &#62; /mnt/etc/fstab &#60;&#60;EOM/dev/fd0a    /    ufs    rw  1  1EOM## create minimum passwd file#cat &#62; /mnt/etc/passwd &#60;&#60;EOMroot:*:0:0:Charlie &#38;:/root:/bin/shEOMcat &#62; /mnt/etc/master.passwd &#60;&#60;EOMroot::0:0::0:0:Charlie &#38;:/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 + -