我即将终止与托管服务提供商多年的合作关系,但在此之前我想安全地清除机箱中的数据。这是一台在单个 EXT3 驱动器上运行 Debian 的专用服务器,虽然我有 root 访问权限,但我无法启动备用媒体,因为它无头地放在某个机架上。
我不需要多次操作,但如果可能的话,我想清除可用空间。基本上,我想离开并确保我不会留下任何个人数据。我担心如果我只是运行,盒子可能会在完成清除/同步文件系统之前崩溃srm -R -s /
答案1
我已经成功完成了所有操作,rm -rf --no-preserve-root /
系统没有先崩溃,并且驱动器上没有留下任何东西。
答案2
随 PXE 映像一起提供的 CentOS 安装程序 (anaconda) 包含一个 VNC 服务器,因此您可以修改 grub 配置以启动 CentOS 安装程序,将第 2 阶段前安装程序问题的答案传递到 grub 行上,重新启动,然后通过 VNC 连接到安装程序。
现在,如果我没记错的话,从该安装程序中您应该能够进入一个 shell,从那里您可以访问和销毁磁盘。
从 CentOS 发行版中的 PXE 目录复制 vmlinuz 和 initrd 文件 (http://mirror.centos.org/centos/5/os/i386/images/pxeboot/)到 /boot 并修改你的 grub 配置:
默认 0 超时 5 标题 CentOS 根 (hd0,0) 内核 /boot/vmlinuz.cent.pxe vnc vncpassword=PASSWORD headless ip=IP netmask=255.255.255.0 gateway=GATEWAYIP dns=8.8.8.8 ksdevice=eth0 method=http://mirror.centos.org/centos/5/os/i386/ lang=en_US keymap=us 初始化 /boot/initrd.img.cent.pxe
顺便说一句,任何正规的托管公司都应该准备好为您销毁磁盘。
答案3
我的解决方案涉及多步骤方法来完成上述部分操作,但也涉及 RAM 中的 chroot,这应该允许 dd 完成完全清除磁盘的操作。
首先删除所有敏感数据,保留运行操作系统所需的文件。然后执行以下操作(不是在脚本中,而是一次执行一个命令):
mkdir /root/tmpfs/
mount -t tmpfs tmpfs /root/tmpfs/
debootstrap --variant=buildd --arch amd64 precise /root/tmpfs/
mkdir /root/tmpfs/mainroot
mount --bind / /root/tmpfs/mainroot
mount --bind /dev /root/tmpfs/dev
chroot /root/tmpfs/
# fill mainroot partition to wipe previously deleted data files
dd if=/dev/zero of=/mainroot/root/bigfile; rm /mainroot/root/bigfile
# now clobber the entire partition, probably won't be able to stay connected to ssh after starting this
# obviously change '/dev/md1' to the device that needs cleared
nohup dd if=/dev/zero of=/dev/md1 >/dev/null 2>&1
这样就可解决问题了!
答案4
您可以放心使用dd
它来覆盖正在运行的服务器上的整个分区/磁盘。我们在工作中经常使用它(当客户不想为安全物理磁盘销毁付费时)。
您实际上是在挂载的文件系统不知情的情况下擦除了数据,因此文件系统将开始崩溃,因为其元数据正在丢失,然后操作系统本身将开始“崩溃”。但是,缓存中已有的内容仍然有效。因此,您可以通过远程控制台或 KVM 监控进度(没有尝试通过 ssh)。即使dd
完成后,系统仍保持运行,但是没有命令可以工作,并且所有守护进程可能已经停止运行。
我使用这些命令:
dd if=/dev/zero of=/dev/sda bs=1M &
然后kill -HUP %1
监控进度(dd 将打印出当前速度和写入的数据量)。设置块大小(bs
)对于实现 HDD 顺序写入速度非常重要dd
。
每次dd
都能擦除磁盘直至其结束,并且我能够发出命令kill
(内置 shell)直至结束。如果您有软件 raid,您可以擦除设备md
本身,也可以单独擦除每个组件设备。