第一次迁移 Linux 系统到新硬盘

系统安装、升级讨论
版面规则
我们都知道新人的确很菜,也喜欢抱怨,并且带有浓厚的Windows习惯,但既然在这里询问,我们就应该有责任帮助他们解决问题,而不是直接泼冷水、简单的否定或发表对解决问题没有任何帮助的帖子。乐于分享,以人为本,这正是Ubuntu的精神所在。
e2002
帖子: 246
注册时间: 2006-06-07 18:15

第一次迁移 Linux 系统到新硬盘

#1

帖子 e2002 » 2008-11-25 15:22

第一次迁移 Linux 系统到新硬盘

1.起因
办公室的机器上现有一个80G硬盘, 安装了 Ubuntu 8.10 和 Windows Vista 双系统。随着时间的推移,现在快要充满了 ...要求换来了一个 Sg 320G的新硬盘。

2.目标
完整迁移80G硬盘上的 Vista 与 Ubuntu到 320G 硬盘上,正常使用这两个配置好的系统。

3.使用的工具
一个 8G 的kingmax 超棒(安装有 深山红叶V30 WinPE 和 Pyppy 4.1.1,还有一个存储数据的分区)
一个160G移动硬盘上的 Kubuntu 8.04.1 KDE4 系统

4.过程
A:新硬盘分区
使用 Puppy 或者 WinPE 中的 分区工具即可
Windows 系统使用主分区 sda1 (注意要设置 active), 数据区 sda5
Linux我自己一般分为 :

代码: 全选

     sda6 :  /boot 
     sda7: /usr
     sda8 :  /var
     sda9 :  /
     sda10 : /swap 
     sda11 : /home
B:Windows Vista 迁移
Windows 系统由于只在一个单独分区上,所以很简单,使用 WinPE 上的Ghost , 选择
Local / Partition to Partition ,从 原 sda1 到新的 sda1 即可。然后数据区也同样操作或
直接copy文件也可。

C:Ubuntu 8.10 迁移
由于 Linux 系统文件通常分布于多个分区,所以需要作的事情比较多一些了。我以前从来没弄过,只能试着来。
首先我对 ghost 比较熟悉,就用 ghost 来复制原有Linux分区内容到对应的新硬盘的分区,过程似乎很快,但 /usr ,/var , / 等似乎有问题,ghost操作表面上正常完成了,但怎么分区已使用的大小与原分区中的内容大小差很多啊?且在 Kubuntu8.04 无法正常挂载。看来这个 Windows 中的 ghost 11 对 Linux 分区的支持属于不可使用的了。
然后使用 puppy 启动,重新格式化新硬盘上的 ext3,swap 分区以后就是挂载这些对应分区,copy所有文件到新分区 。Copy完成,实际上这个 Ubuntu 8.10 在物理意义上已经迁移成功了,剩下的就是一些设置文件的修改(grub 的 menu.lst , etc/fstab)。
还需要注意的是新的 /home 分区上的用户家目录(及其中的子文件夹,文件)的所有者要改为原用户 id.
关闭计算机后,拔掉原来硬盘的电源和数据线,只连接新的硬盘。
由于新硬盘分区上的这些配置文件中的内容关于分区的uuid 还是原硬盘上的,所以首先需要获得新硬盘上的这些 ext3,swap分区的 uuid值,然后用新的 uuid 值替换配置文件中原分区的uuid值。
奇怪的是我在 Puppy 中的终端输入 “ls -la /dev/disk/by-uuid” ,提示没有这个文件夹,我就不知道还有其他什么命令可以查询分区的uuid了?只好重启,换用移动硬盘上的Kubuntu8.04了。
这回倒是获得了新硬盘上各分区的 uuid了...嗯?怎么没有 /swap 分区的uuid 啊?我这个/swap分区是用 gparted 先弄好的啊?
如何获得 /swap 上的 uuid ? Google 了一下, 获得了如下方法:

代码: 全选

              sudo swapoff -a			# 关闭swap
              sudo mkswap /dev/sda10	# 重新创建 一个 swap 分区 ,完成后显示其 uuid
在 puppy 或者 kubuntu 8.04中挂载好 sda6 : /boot 和 sda9 : /
用编辑器修改 menu.lst 和 fstab , 替换所有原硬盘分区的 uuid值 为 对应新硬盘分区的 uuid值,保存退出。

最后安装 grub 到sda :
在 kubuntu 终端中 键入 sudo grub , 然后键入 :

代码: 全选

              root (hd0,5) 
              setup (hd0)
重启计算机...
正常的话,你应该看到你的新硬盘上的 grub启动菜单, Windows 和 Ubuntu8.10 都已经正常迁移成功了,都可以正常运行!
e2002
帖子: 246
注册时间: 2006-06-07 18:15

Re: 第一次迁移 Linux 系统到新硬盘

#2

帖子 e2002 » 2008-11-25 15:38

发现两个问题,请高人指点:

1. 新硬盘上的Ubuntu 启动后哪个滚动条走到约20%时,退回到启动信息文本模式显示了,请问如何调整设置不出现文本模式而是滚动条模式启动?

2. hal 无法成功挂载硬盘上那些未写在 fstab中的分区,正确输入了用户密码也不行,出错信息截图如附图所示。 请教如何修正?
附件
HAL Mount 错误
HAL Mount 错误
头像
ubuntusky
帖子: 185
注册时间: 2007-02-25 22:55

Re: 第一次迁移 Linux 系统到新硬盘

#3

帖子 ubuntusky » 2008-11-25 15:49

e2002 写了:,重新格式化新硬盘上的 ext3,swap 分区以后就是挂载这些对应分区,copy所有文件到新分区 。Copy完成,实际上这个 Ubuntu 8.10 在物理意义上已经迁移成功了,剩下的就是一些设置文件的修改(grub 的 menu.lst , etc/fstab)。
还需要注意的是新的 /home 分区上的用户家目录(及其中的子文件夹,文件)的所有者要改为原用户 id.
关闭计算机后,拔掉原来硬盘的电源和数据线,只连接新的硬盘。
由于新硬盘分区上的这些配置文件中的内容关于分区的uuid 还是原硬盘上的,所以首先需要获得新硬盘上的这些 ext3,swap分区的 uuid值,然后用新的 uuid 值替换配置文件中原分区的uuid值。

linux 硬盘迁移以及分区对考,用cp -a命令即可,cp-a 命令拷贝完后不用改权限,因为原有权限全部保留,只需处理下引导,同时fstab中的uuid改为新分区的uuid即可,或者不用uuid参数进行挂载也行。新的swap直接写在fstab中即可实现开机自动挂载。

desktop cd 启动,如果用gksu nautilus 的gui进行拷贝,很有可能造成权限混乱。所以不推荐gksu nautilus
用cp -a 在终端中进行操作不会有这类问题,强列推荐用cp -a
ubuntu desktop cd 启动后是可以看到新分区的uuid的。

代码: 全选

ls -l /dev/disk/by-uuid
e2002
帖子: 246
注册时间: 2006-06-07 18:15

Re: 第一次迁移 Linux 系统到新硬盘

#4

帖子 e2002 » 2008-11-25 16:39

谢谢指点 cp -a
期待有高人提示上面提到的问题如何解决
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: 第一次迁移 Linux 系统到新硬盘

#5

帖子 billbear » 2008-11-25 18:50

也可以把新硬盘分区的 uuid 改成和旧的一样的。
查看 uuid,用 vol_id /dev/sda1 看是最准确的。
/dev/disk/by-uuid 和 blkid 在手工修改了 uuid 以后不是马上反映最新的变化的,
/dev/disk/by-uuid 要重启以后生成
blkid 要 sudo 才反映新 uuid
头像
ubuntusky
帖子: 185
注册时间: 2007-02-25 22:55

Re: 第一次迁移 Linux 系统到新硬盘

#6

帖子 ubuntusky » 2008-11-25 19:08

e2002 写了: 还需要注意的是新的 /home 分区上的用户家目录(及其中的子文件夹,文件)的所有者要改为原用户
不清楚楼主是用什么方式拷贝的,但根据楼主提到的这个信息,个人以为楼主拷贝后导致所有文件权限混乱。

/home下的改成原来的权限,但其它/下的目录文件权限不对,linux下的文件权限搞混乱后,会出各种各样的问题

建议用sudo cp -a 全部重新进行分区对拷。

前不久我把我的arch从一个80G硬盘迁移到另一个160G的硬盘上,使用的就是cp -a 命令,没有出现任何问题


我记得此前我试过gksu nautilus ,再直接通过鼠标拷贝粘贴就会导致权限混乱。
e2002
帖子: 246
注册时间: 2006-06-07 18:15

Re: 第一次迁移 Linux 系统到新硬盘

#7

帖子 e2002 » 2008-11-25 21:57

我估计也是权限的问题, 我这次实际上实在 Puppy 中用 Rox 文件管理器 在 X 中完成的.
明天抽空重做一次
e2002
帖子: 246
注册时间: 2006-06-07 18:15

Re: 第一次迁移 Linux 系统到新硬盘

#8

帖子 e2002 » 2008-11-26 9:23

已经按 cp -a 在Puppy 的控制台中完成迁移 , 完美结果.
看来关键时候还是命令行可靠啊, 复制所用时间比在 Rox 文件管理器中同样的操作所用时间少了非常多,似乎是Rox 的文件复制操作部分的代码写得不好?

另 : puppy 中可以使用 blkid 来获得各分区的 uuid
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

Re: 第一次迁移 Linux 系统到新硬盘

#9

帖子 ptptptptptpt » 2008-11-26 11:04

billbear 写了:也可以把新硬盘分区的 uuid 改成和旧的一样的。
查看 uuid,用 vol_id /dev/sda1 看是最准确的。
/dev/disk/by-uuid 和 blkid 在手工修改了 uuid 以后不是马上反映最新的变化的,
/dev/disk/by-uuid 要重启以后生成
blkid 要 sudo 才反映新 uuid
good !
头像
ubuntusky
帖子: 185
注册时间: 2007-02-25 22:55

Re: 第一次迁移 Linux 系统到新硬盘

#10

帖子 ubuntusky » 2008-11-26 12:06

ptptptptptpt 写了:
billbear 写了:也可以把新硬盘分区的 uuid 改成和旧的一样的。
查看 uuid,用 vol_id /dev/sda1 看是最准确的。
/dev/disk/by-uuid 和 blkid 在手工修改了 uuid 以后不是马上反映最新的变化的,
/dev/disk/by-uuid 要重启以后生成
blkid 要 sudo 才反映新 uuid
good !

uuid如果一样,新老硬盘一起共用的话,linux下我不清楚会有什么问题,windows会。。 :em05, 哪怕旧硬盘装进移动硬盘,windows仍然会 :em05
billbear
帖子: 3681
注册时间: 2008-05-03 23:42

Re: 第一次迁移 Linux 系统到新硬盘

#11

帖子 billbear » 2008-11-26 12:24

ubuntusky 写了:
ptptptptptpt 写了:
billbear 写了:也可以把新硬盘分区的 uuid 改成和旧的一样的。
查看 uuid,用 vol_id /dev/sda1 看是最准确的。
/dev/disk/by-uuid 和 blkid 在手工修改了 uuid 以后不是马上反映最新的变化的,
/dev/disk/by-uuid 要重启以后生成
blkid 要 sudo 才反映新 uuid
good !

uuid如果一样,新老硬盘一起共用的话,linux下我不清楚会有什么问题,windows会。。 :em05, 哪怕旧硬盘装进移动硬盘,windows仍然会 :em05
我的意思是旧硬盘就格掉他,省得改 menu.lst 和 fstab
头像
ptptptptptpt
帖子: 3711
注册时间: 2006-09-19 18:16

Re: 第一次迁移 Linux 系统到新硬盘

#12

帖子 ptptptptptpt » 2008-11-26 13:08

billbear 写了:
ubuntusky 写了:
ptptptptptpt 写了:
billbear 写了:也可以把新硬盘分区的 uuid 改成和旧的一样的。
查看 uuid,用 vol_id /dev/sda1 看是最准确的。
/dev/disk/by-uuid 和 blkid 在手工修改了 uuid 以后不是马上反映最新的变化的,
/dev/disk/by-uuid 要重启以后生成
blkid 要 sudo 才反映新 uuid
good !

uuid如果一样,新老硬盘一起共用的话,linux下我不清楚会有什么问题,windows会。。 :em05, 哪怕旧硬盘装进移动硬盘,windows仍然会 :em05
我的意思是旧硬盘就格掉他,省得改 menu.lst 和 fstab
我的意思是 bear 总结的这几个查看 uuid 的命令很 good :em05
头像
ubuntusky
帖子: 185
注册时间: 2007-02-25 22:55

Re: 第一次迁移 Linux 系统到新硬盘

#13

帖子 ubuntusky » 2008-11-26 15:44

:em05
qq8593001qq
帖子: 135
注册时间: 2008-01-09 12:56

Re: 第一次迁移 Linux 系统到新硬盘

#14

帖子 qq8593001qq » 2009-02-04 22:28

ghost linux分区需要带参数的
头像
fanicy
帖子: 23
注册时间: 2008-05-31 8:55
联系:

Re: 第一次迁移 Linux 系统到新硬盘

#15

帖子 fanicy » 2012-11-05 9:59

谢谢了,根据你的帖子成功迁移系统,

一些不一样的,最后安装grub的时候我是用这个方法:

viewtopic.php?t=299441

1.启动livecd或liveusb,打开命令界面。
2.挂载原ubuntu系统各分区(以我的系统为例)

挂载root
代码:
sudo mount /dev/sda11 /mnt

挂载boot
代码:
sudo mount /dev/sda10 /mnt/boot

挂载home
代码:
sudo mount /dev/sda12 /mnt/home

上面这一步挂载的东西因人而异吧,主要看你是怎么划分磁盘的。总的原则就是,把原来的ubuntu各目录统统挂上去。

3.挂载dev(重要,没有这一步将无法修复grub2)
代码:
sudo mount --bind /dev /mnt/dev

4.挂载proc(重要,没有这一步将无法修复grub2)
代码:
sudo mount --bind /proc /mnt/proc

5.Chroot到挂好的ubuntu
代码:
sudo chroot /mnt

6.install——修复/重装grub2
代码:
grub-install /dev/sda
update-grub



最后安装从新硬盘启动的时候,总是报哪个 "你的绘画只持续了10秒" 的错误,
然后用 chmod 777 /tmp

一切OK,~~~

再次感谢以上各位~~
回复