您现在的位置是:首页 > IT基础架构 > 计算存储 >

使用Knoppix救援盘恢复您的Linux服务器

2010-06-10 18:11:00作者: 来源:

摘要Linux的使用具有大量的优点,其中之一就是其卓越的恢复手段。即使您的服务器没有正常地启动,您仍然可以通过恢复盘访问其上的任何内容。...

Linux的使用具有大量的优点,其中之一就是其卓越的恢复手段。即使您的服务器没有正常地启动,您仍然可以通过恢复盘访问其上的任何内容。接下来,您将学到如何通过Knoppix来做到这一点。本文在几乎所有的Linux发行版上都可用,而不着重于特定的Knoppix版本。

  使用Knoppix救援CD可以方便地启动您的服务器。只要把磁盘放入服务器的光驱并重新启动服务器,Knoppix操作系统就会进行自动加载。但它不会让您立即就能访问硬盘驱动器上的文件,您必须自己挂载服务器上的所有文件系统,假如您还能进行挂载的话。这篇文章所介绍的过程有助于解决非文件系统错误造成的启动问题。如果服务器的文件系统有错误并不能被挂载,本文描述的过程能帮助您找到一个解决方法,但可能需要额外进行一些操作。

  挂载Linux文件系统

  您必须要先挂载服务器上的根文件系统,以便通过Knoppix救援CD对其进行访问。这也同样适用于服务器上的其它文件系统。当使用一个急救系统时,必须要将根目录挂载到一个临时目录。大多数的发行版都有一个叫/mnt的目录用于此目的,所以最好是使用这个目录并将您的文件系统挂载到它上面。但是,这里有一个潜在的问题:大多数的工具程序都假设您的配置文件在一个非常特定的目录里;比如说,如果您的发行版在查找/boot/grub/menu.lst,工具就可能不知道实际的路径应该是/mnt/boot/grub/menu.lst。因此,您需要确保所有挂载到/mnt上的东西,在操作系统中,要看起来就像直接挂载在/目录下一样。下面的过程介绍了如何去做到这一点。

  1. 使用Knoppix CD启动您的计算机。接着您会看到Knoppix的欢迎界面。然后,按回车键去着手加载Knoppix。

  2. 在加载时,Knoppix会等待片刻去显示所有可用的语言。如果您没做任何选择,会自动选中英语。当启动完成后,您就可以访问Knoppix桌面。

  3. 要恢复对服务器的访问,您需要从Knoppix开启一个终端窗口。默认情况下,在开启一个终端窗口后,您会获得一个普通用户的访问权限。为了能够修复您的服务器,您需要Root权限。可以通过sudo su命令来获得这一权限。

  4. 现在,使用mount命令。该命令显示当前还没有加载任何文件系统,而您所看到的内容都在一个RAM驱动器里。

Knoppix

  默认情况下,Knoppix只加载RAM磁盘

  5. 在不能确切知晓服务器上的存储是如何进行组织的情况下,您就需要检查到底使用了什么分区和磁盘。可以通过Fdisk –l 命令来开始这个检查。这个命令会显示在服务器上所有可用的磁盘(如果它们是存储区域网络的逻辑单元号形式的话也是这样),而且会显示在这些磁盘上存在哪个分区。磁盘名通常以/dev/sd开头(尽管可能使用其它的名字),并紧跟着一个字母。第一个磁盘是/dev/sda,第二个磁盘是/dev/sdb等等。在磁盘上,您会发现同样被编号的分区。例如,/dev/sda1是您服务器上第一个磁盘的第一个分区。这里是一个典型的磁盘布局的一个例子:

  使用fdisk –l 去显示您服务器上当前的磁盘布局。

ilulissat:/ # fdisk -l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14          30      136552+  82  Linux swap / Solaris
/dev/sda3              31         553     4200997+  83  Linux

  6. 现在来弄清楚您都看到了什么。如果看起来和上面的例子一样,那么不难找出其中的根文件系统。可以看到有两个分区使用分区类型83(意味着它们包含一个Linux文件系统)。但其中一个只有12个柱面,而由于每一个柱面只有大约8 MB,这对于包含一个根文件系统来说太小了。第二个分区使用分区类型82,所以它包含一个交换文件系统。因此,仅有的一个可能包含根文件系统的分区是/dev/sda3。

  7. 现在您知道哪个分区包含了根文件系统,那么下面就进行挂载。如前所述,反正Knoppix不会使用/mnt目录做任何有用的事,所以最好是在它上面来做。所以在这个例子中,要使用的挂载命令为mount /dev/sda3 /mnt。

  8. 一个快速的检查可以显示,到现在为止,您已经正确挂载了根目录。在激活chroot环境之前,您也需要能够访问一些系统目录。其中最重要的是/proc和/dev。通常在启动时会自动创建这些目录。这意味着它们的确存在于您的Knoppix根目录里,但如果已经将/mnt作为新的根目录,您会发现它们是空的。因为确实需要/proc和/dev去解决问题,所以在做其它事情之前要先挂载它们。下面的两个命令会帮助进行挂载。

  mount -o bind /dev /mnt/dev
  mount -t proc proc /mnt/proc

  9. 如果做到这里,您的整个操作系统就可以通过/mnt来访问了。现在可以通过激活目录(使用cd /mnt)来验证这一点。此时,提示符为root@Knoppix:/mnt#。现在使用命令chroot .来使当前目录(.)成为您的新的根目录。这让您进入了服务器硬盘上安装的所有文件的根目录。

  10. 由于Linux服务器倾向于使用一个以上的分区,您可能需要在真正解决所有问题之前,同时挂载其它的分区。例如,如果目录/usr在另一个分区上,您需要先让其也可被访问,然后才能进行任何操作。在这时,唯一要进行的工作是精确地找到哪一个文件系统被挂载到哪儿。其实,对这个问题有一个简单的答案:/etc/fstab。在这个文件中,您可以准确地看到在您服务器正常启动时,都有什么被挂载了。所以检查/etc/fstab的内容,并手动执行该处定义的所有挂载。或者为了方便,使用mount –a来解决问题。这个命令会自动挂载所有还没有被挂载的文件系统。

  现在,您就可以完全地访问服务器硬盘驱动器上的所有工具了,而且更重要地是,对于所有的文件可以分析什么出错了,并对访问进行恢复。但请确保,在此时您是通过一个备份进行启动。

  要解决您计算机上的所有问题,需要确保恢复对系统的完全访问。您可以通过挂载计算机上的所有文件系统来达到这一点,然后通过使用chroot命令来使它们可访问。这样,就可以确保让所有的工具都可以看到服务器文件系统的本来面目,而这会让恢复访问变得更加的容易。


(本文不涉密)
责任编辑:

站点信息

  • 运营主体:中国信息化周报
  • 商务合作:赵瑞华 010-88559646
  • 微信公众号:扫描二维码,关注我们