LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: longwx

换新硬盘,能否不重新安装系统?

[复制链接]
发表于 2007-6-20 19:44:50 | 显示全部楼层
Post by diony
cp比mv保险一些吧。至少即便中途出错,原来硬盘上的东西还在。不过cp的时候要注意参数,dPRp。

同意!cp -a就好,功能与dpPR是一样的!
回复 支持 反对

使用道具 举报

发表于 2007-6-20 19:50:20 | 显示全部楼层
我也来分享一下我的经验,我现在的系统就是从原来的硬盘copy过来,把新硬盘mount到系统里面,然后copy分区到新硬盘相应的位置,最后chroot到新系统写好mbr就可以了
回复 支持 反对

使用道具 举报

发表于 2007-6-20 20:16:27 | 显示全部楼层
Post by hooong.jiang
同意!cp -a就好,功能与dpPR是一样的!


受教了。:D
回复 支持 反对

使用道具 举报

发表于 2007-6-20 20:31:55 | 显示全部楼层
也可以试试直接dd
dd if=/dev/老硬盘 of=/dev/新硬盘
方向不要弄反。
回复 支持 反对

使用道具 举报

发表于 2007-6-20 23:56:36 | 显示全部楼层
我提供我看来的方法。
假定你的linux安装在hda上,hda3,是主要分区,转移到hdc,因为你需要更换一个更加大的硬盘。

boot with livecd

dd方法:

   1. # dd if=/dev/hda of=/dev/hdc
   2. # cfdisk /dev/hdc,把最后一个分区删除然后在建立起来。
   3. 分区文件系统检查。

    * # resize_reiserfs /dev/hdc3
    * # reiserfsck –fix-fixable /dev/hdc3
    * # e2fsck /dev/hdc1

更加简单快速的方法。

用live CDboot,然后根据需要划分新硬盘。

把hda1和hda3,hdc1和hdc3mount到/mnt的hda1和hda3,hdc1和hdc3目录下,然后

# cd /mnt/hda1
# find . -print | cpio -pamd /mnt/hdc1

对hda3也做同样的步骤。

然后交换硬盘,chroot到新硬盘,安装grub,完工。
回复 支持 反对

使用道具 举报

发表于 2007-6-21 00:27:11 | 显示全部楼层
Post by wxw
用tureimage光盘启动全盘拷贝。什么都不用动。

硬盘大小不同,会不会有影响?
如果个分区不同,会不会出问题?
回复 支持 反对

使用道具 举报

发表于 2007-6-21 00:31:30 | 显示全部楼层
想来这和从stage3安装gentoo没什么两样,只不过这次不是gentoo的, 而是换成了自己的系统。

另外, 我认为dd,  image之类的不是最好的方法。因为这是一次消除文件系统碎片的好机会,哪怕你用的是reiserfs 也是一样的。cp -a, chroot  会是最佳选则。
回复 支持 反对

使用道具 举报

发表于 2007-6-21 01:44:21 | 显示全部楼层
总结一下:

启动另一个Linux系统,对没有运行的linux系统分区进行文件复制操作。(可以用livecd来做)
cp -a 源系统根目录 目标系统根目录
例:
两块硬盘 /dev/sda 和 /dev/sdb
  1. mkdir -v /mnt/sda1
  2. mount /dev/sda1 /mnt/sda1
  3. mkdir -v /mnt/sdb1
  4. mount /dev/sdb1 /mnt/sdb1
  5. 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 命令 ,危险指数 ***
回复 支持 反对

使用道具 举报

发表于 2007-6-21 06:23:17 | 显示全部楼层
dd没什么危险的,是最简单的做法,即使做不成功也能再用其他的办法。我这么做了好多了,因为我的机器上没光驱。做了个DSL-3.3的USB启动又没办法chroot.
回复 支持 反对

使用道具 举报

发表于 2007-6-21 10:37:11 | 显示全部楼层
Post by gorf
也可以试试直接dd
dd if=/dev/老硬盘 of=/dev/新硬盘
方向不要弄反。

两块不同大小的盘,能dd么???
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表