小智 23
使用 rsync。从新主机,您可以使用
rsync -avP --numeric-ids --exclude='/dev' --exclude='/proc' --exclude='/sys' root@failedharddrivehost:/ /path/to/destination/
我不会尝试使用 tar 之类的东西,因为当文件损坏时它可能无法工作。
为什么要与目录排除结合起来?将相同的设备安装到另一个目录不是更好的主意吗?现代内核允许这种方式。例如,您已经安装了
/dev/sda1 as / 然后执行: mkdir /CLEANROOT mount /dev/sda1 /CLEANROOT
之后你有: /dev/sda1 as / /dev/sda1 as /CLEANROOT
这是在两个位置可见的相同文件系统,但 /CLEANROOT 没有附加安装。然后,您可以在不带任何排除的情况下 tar 或 rsync /CLEANROOT,而不是复制带排除的 / 。
当然,当您有一些数据分区时,您必须复制其他数据分区。
复制分区是服务器恢复的第一步。另一个是重新生成引导扇区,否则系统将无法从复制的磁盘引导。当您从安装/救援 CD 或随身碟启动时,救援模式很有用。
如果两台计算机位于同一(安全)LAN 上,我建议使用不同的方法netcat
。这通常要快得多,因为它不加密数据。
root@good_host$ cd good_partition; netcat -l -p 1234 | tar xvpmf -
root@bad_host$ tar -cv -f- --exclude=/proc --exclude=/sys / | netcat good_host.ip 1234
Run Code Online (Sandbox Code Playgroud)
它在好机器上打开一个侦听端口 1234 netcat -l -p 1234
,并将传入数据通过管道传输到tar
提取(保留 mtime 和权限)。坏主机将数据发送到此端口,也使用tar
和netcat
。我包含了一些--exclude
参数,因为/proc
和/sys
是虚拟文件系统,因此在新主机上无用。(特别是()中代表您的 RAM 的文件/proc/kcore
会添加不必要的数据量)。
但是,您(还)应该考虑转储dd
故障驱动器的分区:
user@good_host$ cd good_partition; netcat -l -p 1234 > dump_of_bad_partition_1.dd
root@bad_host$ dd if=/dev/sda1 | netcat good_host.ip 1234
Run Code Online (Sandbox Code Playgroud)
您必须采用/dev/sda1
正确的设备。对故障驱动器上的其他分区也执行此操作。
通过该转储,您可以确定您没有错过任何tar
无法捕获的重要元数据(例如 ACL)。
归档时间: |
|
查看次数: |
52670 次 |
最近记录: |