|
|
发表于 2007-6-21 01:44:21
|
显示全部楼层
总结一下:
启动另一个Linux系统,对没有运行的linux系统分区进行文件复制操作。(可以用livecd来做)
cp -a 源系统根目录 目标系统根目录
例:
两块硬盘 /dev/sda 和 /dev/sdb- mkdir -v /mnt/sda1
- mount /dev/sda1 /mnt/sda1
- mkdir -v /mnt/sdb1
- mount /dev/sdb1 /mnt/sdb1
- cp -a /mnt/sda1/. /mnt/sdb1/
复制代码 其中 /mnt/sda1 是 /dev/sda1 的挂载点,有数据;后面的 /mnt/sdb1是 /dev/sdb1 的挂载点,没有文件。直接从 原系统根目录 /mnt/sda1 cp -a 保留原属性复制到没有数据的 /mnt/sdb1 (目标系统根目录)。其中 /mnt/sda1/. ,这里是在 /mnt/sda1/ 之后加了个 . , 如果不加这个 . 结果就不一样了。我讲不太清楚,哪位帮我解释一下。
如果系统只有一个分区,只需要像这样做一次。如果有多个分区,可以是这样:
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
cp -a /mnt/sda1/. /mnt/sdb1/ #原/目录到目标/目录
cp -a /mnt/sda2/. /mnt/sdb2/ #原/usr目录到目标/usr目录
cp -a /mnt/sda3/. /mnt/sdb3/ #原/opt目录到目标/opt目录
cp -a /mnt/sda5/. /mnt/sdb5/ #原/home目录到/home目录
cp -a /mnt/sda6/. /mnt/sdb6/ #原data到目标data(备份区)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
当然也可以原先的linux只有一个分区的复制到目标系统中有多个分区,或者原先的linux有多个分区复制到目标系统中只有一个分区。(这种情况需要修改 /etc/fstab 文件,将usr和opt分区挂载到 相应的 目录。)
系统文件拷贝完毕之后,再重建引导。用gentoo的朋友要重装个GRUB或者lilo什么的,那肯定是太熟练了。
大文件(大于4KB),多个文件(目录),推荐使用 cp -a ,不用 mv 。cp命令要显示操作的详细信息可加 -v 参数( cp -av file1 file2 )。跨设备移动文件最容易丢失数据,比如突然断电,比如执行到一半中途出错(有一半移动成功,有一半还在原地)。
慎用 dd 等命令,危险指数 ******
勿用 mv 命令 ,危险指数 *** |
|