倒腾硬盘上的资料
授权方式:署名,非商业用途,保持一致,转载时请务必以超链接(http://www.fwolf.com/blog/post/222)的形式标明文章原始出处和作者信息及本声明。我用的电脑上本来有两块硬盘,一块大一点儿的为主盘,/ /boot /usr /var全挂在上面,剩余的空间分成/big1 /big2等大分区存储数据,另外一块小一点的为副盘,主要挂/home,小一点的这块盘是从以前安装ubuntu的电脑的主盘,电脑升级以后,直接调整了一下就挂在/home下用了。
但是最近同事们嫌我这快小一点的硬盘噪音太大了,吵得慌,于是另外找了一块旧硬盘,发现还是有声音,接着再找一块稍微新一点的盘,这回没声音了,但这块硬盘在也用着呢,换下来的话还要找块硬盘顶上,于是,硬盘及需要倒腾的内容如下:
硬盘A 现用主盘,挂着/ /boot /usr /var等,不动
硬盘B 现用副盘,挂着/home,准备撤下,但数据要保留
硬盘C 噪音小一点的旧硬盘,准备用来装硬盘D上的原有数据。
硬盘D 没有噪音的旧硬盘,准备用来更换硬盘B,原有数据备份到硬盘C中。
调整之前电脑1上安装ubuntu系统,挂硬盘A、B,电脑2上安装windows,挂硬盘D;
调整之后电脑1上安装ubuntu系统,挂硬盘A、D,电脑2上安装windows,挂硬盘C。
有点乱,所以要先交代清楚,分区格式之间的不同就不说了,说出来更乱。
首先把硬盘D的东西倒到硬盘C中,直接把硬盘C挂在主机2上,识别出来之后分区,然后把硬盘D上除C:盘之外的内容都拷贝上,C:盘的内容无法直接复制,下载一个ghost,然后用外置光驱启动,运行ghost,采用分区对分区的复制方式把c:盘的内容复制到了硬盘C上。
至此,主机2上的工作基本做完,把硬盘D拆下,把硬盘C换上应该就能够启动原来的系统了。但是由于在ghost的时候需要进cmos修改启动顺序,却又不知道cmos密码,于是——放电,一放电电脑日期成了2000年,ghost之后启动windows xp就卡死在登录屏幕了,无奈只得重装。虽然是自己忘记了修改cmos时间导致的,但winxp的这点限制实在不爽,用户要为反盗版付出多大代价?还不是羊毛出在羊身上?
接下来要在主机1上把硬盘B的内容倒到硬盘D中,但主机2是dell的品牌机,自带硬盘为sata接口,而硬盘B、D都是普通ide接口,只有一条ide连接线,两块硬盘就都连在这一条线上。启动主机1上原来的系统,发现在检查光驱文件分区的时候卡住不动了,原来在fstab中hda还是光驱,现在换成硬盘了,所以启动的时候报错。关机-摘下硬盘D-启动-更改fstab-关机-安上硬盘D,这才好,然后对硬盘D重新分区、拷贝数据。
数据转换完成之后,摘掉硬盘B——可以退伍了,装上硬盘D,fstab按照新的分区划分进行更新,然后重启系统。本来以为一切都没事了,谁知居然提示没有可引导的分区!这会是什么原因呢?硬盘A是在安装ubuntu时进行分区的,/boot也在上面,硬盘D原来是dos的可引导分区,现在删掉换成ext3分区了,难道我摘下的硬盘B反而是引导分区,就因为上一次安装ubuntu时已经设定好了?不管什么原因,现在当务之急是光盘启动,安装grub。在这一点上ubuntu的livecd光盘反倒不太好用,启动过程太漫长了,grub安装参见恢复 Ubuntu 6.06 的 grub 菜单,命令大概为:
mount /dev/sda2 fakeroot
ls -l /dev/sda
chroot fakeroot
mount /dev/sda1 /boot
mount /dev/sda3 /usr
mknod /dev/sda b 8 0
grub-install /dev/sda
由于原先grub的menu.lst什么的都在,所以安装比较顺利,grub提示有两块硬盘0,0为hdb硬盘D,1,0为sda硬盘A。重启,顺利见到了grub的启动菜单,选择后居然又无法启动,提示文件找不到?能够看到菜单说明grub安装是正常的,文件找不到说明linux内核文件的位置配置不对,经过反复尝试,发现把root(1,0)更改为root(0,0)就能够正常启动了,这个和grub提示的硬盘情况略有不同,原因我也不知道。启动之后修改menu.lst中,把(1,0)全部替换为(0,0),以后启动就完全正常了,看来sata、ide硬盘共存的情况下,先后顺序有可能会变化。
工作基本上都完成了,唯一的遗憾是在备份原先挂/home的硬盘B的数据时,只是用了个cp * -rv,所有的隐藏文件,就是以点.开头的文件都没有拷贝过来,导致所有的设置全部丢失。耗时一天,总结一下,有几点需要注意:
- cmos放电之后,记得立刻更改cmos日期,否则会导致winxp无法启动(只能重装解决?),linux应该不存在这个问题。
- 原先挂载光驱的地方如果要换成硬盘,提前把fstab中的光驱挂载项删除,不然启动时会在检查文件系统时卡壳。
- grub安装不难,首先保证grub安装上,然后有问题再调整linux内核镜像的地址,在sata和ide硬盘共存的情况下注意排列顺序。
- cp *是不会拷贝dot开头的隐藏文件的,有可能的话,还是cp 上一级目录比较保险,或者补上一个cp .*。
- 不是用useradd -m创建的用户home目录,里面没有.bash_profile文件,会导致ssh登录到这个主机时.bashrc不起作用,解决方法为复制过来一个即可。
Bookmark and Share This Page
If you like this then please subscribe to the RSS Feed.
Save to Browser Favorites
Ask
backflip
blinklist
BlogBookmark
Bloglines
BlogMarks
Blogsvine
BuddyMarks
BUMPzee!
CiteULike
co.mments
Connotea
del.icio.us
DotNetKicks
Digg
diigo
dropjack.com
dzone
Facebook
Fark
Faves
Feed Me Links
Friendsite
folkd.com
Furl
Google
Hugg
Jeqq
Kaboodle
kirtsy
linkaGoGo
LinksMarker
Ma.gnolia
Mister Wong
Mixx
MySpace
MyWeb
Netvouz
Newsvine
PlugIM
popcurrent
Propeller
Reddit
Rojo
Segnalo
Shoutwire
Simpy
Slashdot
Sphere
Sphinn
Spurl.net
Squidoo
StumbleUpon
Technorati
ThisNext
Webride
Windows Live
Yahoo!
Email This to a Friend
November 28th, 2006 at 11:55:36
[...] 而我产生这个错误的表,原来是在windows服务器下使用的,现在转到linux服务器下了,并且在很长的时间里都没有访问,只是一直舍不得扔掉,每次备份的时候都带着。以前这些数据表都保存在fat32分区中,上次倒腾硬盘的时候,都转换成了ext3分区。再查看一下文件名,果然存在文件名大小写的问题。 [...]