当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-25 15:22 

注册: 2006-06-07 18:15
帖子: 244
送出感谢: 1
接收感谢: 2
第一次迁移 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 都已经正常迁移成功了,都可以正常运行!


页首
 用户资料  
 
2 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-25 15:38 

注册: 2006-06-07 18:15
帖子: 244
送出感谢: 1
接收感谢: 2
发现两个问题,请高人指点:

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

2. hal 无法成功挂载硬盘上那些未写在 fstab中的分区,正确输入了用户密码也不行,出错信息截图如附图所示。 请教如何修正?


附件:
文件注释: HAL Mount 错误
sys_move_bug_01.png
sys_move_bug_01.png [ 328.54 KiB | 被浏览 2847 次 ]

页首
 用户资料  
 
3 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-25 15:49 
头像

注册: 2007-02-25 22:55
帖子: 185
送出感谢: 0 次
接收感谢: 0 次
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


页首
 用户资料  
 
4 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-25 16:39 

注册: 2006-06-07 18:15
帖子: 244
送出感谢: 1
接收感谢: 2
谢谢指点 cp -a
期待有高人提示上面提到的问题如何解决


页首
 用户资料  
 
5 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-25 18:50 

注册: 2008-05-03 23:42
帖子: 3681
送出感谢: 4
接收感谢: 6
也可以把新硬盘分区的 uuid 改成和旧的一样的。
查看 uuid,用 vol_id /dev/sda1 看是最准确的。
/dev/disk/by-uuid 和 blkid 在手工修改了 uuid 以后不是马上反映最新的变化的,
/dev/disk/by-uuid 要重启以后生成
blkid 要 sudo 才反映新 uuid


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-25 19:08 
头像

注册: 2007-02-25 22:55
帖子: 185
送出感谢: 0 次
接收感谢: 0 次
e2002 写道:
还需要注意的是新的 /home 分区上的用户家目录(及其中的子文件夹,文件)的所有者要改为原用户


不清楚楼主是用什么方式拷贝的,但根据楼主提到的这个信息,个人以为楼主拷贝后导致所有文件权限混乱。

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

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

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


我记得此前我试过gksu nautilus ,再直接通过鼠标拷贝粘贴就会导致权限混乱。


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-25 21:57 

注册: 2006-06-07 18:15
帖子: 244
送出感谢: 1
接收感谢: 2
我估计也是权限的问题, 我这次实际上实在 Puppy 中用 Rox 文件管理器 在 X 中完成的.
明天抽空重做一次


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-26 9:23 

注册: 2006-06-07 18:15
帖子: 244
送出感谢: 1
接收感谢: 2
已经按 cp -a 在Puppy 的控制台中完成迁移 , 完美结果.
看来关键时候还是命令行可靠啊, 复制所用时间比在 Rox 文件管理器中同样的操作所用时间少了非常多,似乎是Rox 的文件复制操作部分的代码写得不好?

另 : puppy 中可以使用 blkid 来获得各分区的 uuid


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-26 11:04 
头像

注册: 2006-09-19 18:16
帖子: 3711
送出感谢: 0 次
接收感谢: 3
billbear 写道:
也可以把新硬盘分区的 uuid 改成和旧的一样的。
查看 uuid,用 vol_id /dev/sda1 看是最准确的。
/dev/disk/by-uuid 和 blkid 在手工修改了 uuid 以后不是马上反映最新的变化的,
/dev/disk/by-uuid 要重启以后生成
blkid 要 sudo 才反映新 uuid


good !


_________________
Ubuntu 系统备份、恢复、克隆、批量部署、制作 live 系统


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-26 12:06 
头像

注册: 2007-02-25 22:55
帖子: 185
送出感谢: 0 次
接收感谢: 0 次
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


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-26 12:24 

注册: 2008-05-03 23:42
帖子: 3681
送出感谢: 4
接收感谢: 6
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


页首
 用户资料  
 
12 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-26 13:08 
头像

注册: 2006-09-19 18:16
帖子: 3711
送出感谢: 0 次
接收感谢: 3
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


_________________
Ubuntu 系统备份、恢复、克隆、批量部署、制作 live 系统


页首
 用户资料  
 
13 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2008-11-26 15:44 
头像

注册: 2007-02-25 22:55
帖子: 185
送出感谢: 0 次
接收感谢: 0 次
:em05


页首
 用户资料  
 
14 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2009-02-04 22:28 

注册: 2008-01-09 12:56
帖子: 135
送出感谢: 0 次
接收感谢: 0 次
ghost linux分区需要带参数的


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 第一次迁移 Linux 系统到新硬盘
帖子发表于 : 2012-11-05 9:59 
头像

注册: 2008-05-31 8:55
帖子: 23
送出感谢: 0 次
接收感谢: 0 次
谢谢了,根据你的帖子成功迁移系统,

一些不一样的,最后安装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,~~~

再次感谢以上各位~~


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 16 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:Bing [Bot] 和 4 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译