回滚清理debian

我有一个远程服务器,就像一个“沙箱”,我正在testing所有新的软件,然后再安装到生产服务器上。 我想清理一下这个系统,但是不小心删除了所有的/ var内容。 我如何恢复它,或回滚清除debian,如果我不能重新安装系统,因为我只有SSH连接,没有物理访问?

我要做的是如下:

获得一个完全可以在RAM中运行的Linux发行版。 在这种情况下,假设您将使用PLD Rescue Linux(可在此处获得: http : //rescuecd.pld-linux.org )。 确保使用正确的CPU架构(x86或x86_64)。

在某处挂载iso(例如/ mnt)并将内核和initrd复制到/ boot:

cp /mnt/boot/isolinux/vmlinuz /boot/vmlinuz-rescue (vmlinuz6 for x86_64) cp /mnt/rescue.cpi /boot/rescue.cpi (rescue6.cpi for x86_64) 

configuration你的引导程序来启动救援系统,而不是你的Debian。 内核命令行应该是:

 initrd=/boot/rescue.cpi root=/dev/ram0 

请记住,默认情况下,您将无法select它,因为您没有物理访问权限或KVM。

现在重新启动系统。 等待一段时间,直到ping回来并以root身份login到您的邮箱。 密码是:pld

现在有趣的开始。 格式化所有系统分区 – 以前安装在/,/ var /,/ boot等上的所有内容。当然,您可以单独离开/ home。 例如,如果您的系统由/ dev / sda1上的单个文件系统组成,请运行:

 mkfs.ext4 /dev/sda1 

挂载/ mnt下的所有内容。 如有必要,创build适当的挂载点。

现在您将引导一个基本的Debian系统:

 debootstrap squeeze /mnt 

这会将Debian Squeeze安装到/ mnt中。 等待一切完成(这将需要一段时间)。 装入绑定虚拟文件系统:

 mount --bind /proc /mnt/proc mount --bind /sys /mnt/sys mount --bind /dev /mnt/dev 

并根据您的新environemnt:

 chroot /mnt /bin/bash 

一旦chroot安装了Linux内核和适当的引导程序:

 apt-get update apt-get install linux-image-2.6-i686 (or linux-image-2.6-amd64) apt-get install grub-pc 

您还需要SSH元组件:

 apt-get install ssh 

现在编辑/ etc / fstab,/ etc / hostname和/ etc / hosts以满足您的需要。 请记住使用适当的networkingconfiguration来创build/ etc / network / interfaces。 仔细检查它的错误。 你将需要networking,因为你只能SSH进入框。

为root设置密码:

 passwd 

将您的引导程序安装到硬盘的MBR中。 如果你在我的例子中安装了GRUB2,那么运行:

 update-grub grub-install /dev/sda 

通过input“exit”退出chroot并卸载/ mnt下的所有内容。 重启并向平神祈祷。 😉

警告:

在只有SSH访问的情况下重新安装操作系统是非常危险的,因为如果没有function性networking,您就没有办法debugging破碎的系统。 先在PC上的虚拟机上练习,然后将这些指令应用到您的服务器上。

抓住debootstrap包 。 Debootstrap可以在某个目录下安装一个初学Debian,你可以根据它重build一些/var

当然,您将无法正常安装软件包。 下载并手动解压缩。

 dpkg-deb -x debootstrap_*.deb / mkdir /chroot debootstrap squeeze /chroot 

现在重新创build至less目录结构和权限,或者只是复制/chroot/var批发。

当然,你不会恢复你的数据,但你应该得到一个跛行系统。 尤其是,除非您修复软件包数据库,否则您将无法使用软件包pipe理工具,这是很多工作。 我build议您尽快重新安装,以获得物理访问权限。

如果您的服务器托pipe在托pipe公司,他们可能提供某种方式远程重新安装操作系统或启动救援磁盘? 也许值得与他们核对,如果这是可能的? (您没有指定服务器是否托pipe公司,或者只是一个遥远的地方?

我托pipe我的专用服务器的公司提供了一个Web界面和桌面应用程序,您可以使用它pipe理服务器和托pipe帐户的某些方面。 这包括控制机器的启动源,所以我可以启动一个select的救援磁盘之一,以及擦除和重新安装一个新的操作系统(如在使用相同的方法,他们用来configuration服务器当您第一次订购服务器时使用特定的操作系统)。