转一篇文,我在老笔记本电脑上安装ubuntu的失败经历

如果说飞蛾喜欢扑火是处于本性,那么工程师喜欢处理棘手问题也是出于本性。
这个棘手的问题就是,在没有光驱,没有u盘启动支持的机子上,通过硬盘安装的方式安装ubuntu?
虽然网上有3种方式可以做到,但事实上我都试过但没有成功,但我可以说,我尝试过很多错误。
作为一种纪念,我决定记录下来这个过程:
下载iso档
10.04版
12.10版
14.20版
8.10版
desktop版
alternative版
initrd
vmlinux

最后可行的方式:
网购一个光驱,用光驱安装到硬盘,然后用克隆方式到SSD固态硬盘,
修改menu.list和fstab,引导到SSD硬盘上
把sdb4作为home目录挂载到系统

menu.list和fstab的关系:
系统是靠grub引导的,grub安装的时候会往mbr写东西,大概就是一段跳转代码,然后就跳转到linux的按照分区里面的grub执行程序。一旦这个mbr被grub该掉,原先window的引导也要依赖grub这套机制来跳转了,事实上grub在安装时,也会扫描当前机器里面的各个硬盘,看看是否存在window系统,如果有,它会在里面提供一条路径,引导到windows自己的引导界面。window的引导程序好像叫ntldr。
还是说说menu.lst,这个在后期的版本改为grub.cfg, 它是给grub看的,也就是原始安装的那个ubuntu里面的grub,而不是克隆之后的grub,因为写在mbr里面的指针是指向原始的那个盘的grub。
关于fstab,它是告诉系统要挂载的硬盘,首先root是必须要挂载的,所以必须指定一个root。
fstab里面是以UUID为主,也就是每一个分区都有一个这样的id,而且是唯一的。但如果克隆的硬盘,则这个id会跟原来的一样,要用tune2fs -U命令去重新产生一个UUID, 当然也可以手工指定一个,我后来就是手工制定的,因为前面的menu.lst和fstab都改好了,重新生成的话就又要修改这2个地方。
而事实上克隆的那个分区上面的fstab跟原始的分区上的fstab应该不一样,也就是说他们挂的root分区不一样。

新学到的命令:
dd if=  of=  bs=  count=
parted
fdisk
blkid
tune2fs -U 

新接触到的文件:
/etc/fstab
/boot/grub/menu.list
/etc/apt/sources.list

首先是图片:
1. 这张图片,是当初想用硬盘安装,已经下载好iso文件,据说要用一个grub4dos来引导,具体如何引导也不是很清楚,所以装了个一键ghost,装好之后,果然没有让我失望,有一个boot from iso选项,于是尝试用这种方式引导安装,结果就出现这个错误。
图片


2. 这张是也是把旧硬盘里面的winxp克隆到固态硬盘上面,启动时失败,然后提示这个错误,这个原因并不是真的没有这个文件,而是由于我修改了boot.ini,这个我特别有一篇博文: http://blog.csdn.net/johnny_nass_hu/article/details/27075107
它主要的原因是:

因以下文件的损坏或者丢失windows无法启动,windows root\system32\hal.dll

然后我就傻傻地重新拷贝hal.dll

结果还是不行,查了网上的说明,不一定是因为文件的问题,而是因为改了boot.ini的原因,导致路径出错。

所以说这个所谓的路径,真的很让人恼火,它永远不会告诉你它自己搞错了路径,它只会告诉你文件损坏和丢失。

知道了原因,可是还是不知道解决办法,难道windows不支持这种2个硬盘的情况下,默认到第二块硬盘是不行的?

于是,在一个偶然的发现下,无意之中有一个猜想,会不会跟后面的排列顺序有关,也就是说你想把默认项设置在disk(0),那么这个默认项也应该要排在前面,而现在我希望把默认项设定在disk(1),也应该要把disk(1)的启动项放到最前面。

修改成这样,结果就ok了:

图片

3. 由于我的电脑太老了,CPU不支持PAE特性,PAE是Physical Address Extension,也就是物理地址扩展,想不到当年最先进的技术,现在已经很过时了,连号称对配置要求最低的ubuntu都不兼容了。ubuntu应该是从12.xx版本开始强制要求兼容PAE,严格来讲,是release版不再兼容没有PAE flag的CPU,但是如果自己编译内核,把PAE去掉估计还是可以装成功的,只是过于折腾。
图片

4. 这个原因是引导程序没有找到安装文件,原来光盘里面的initrd只支持从cdrom读取文件,不支持从硬盘里读取文件,因此找不到,如果要读取硬盘的话,要去下载专门的支持硬盘引导的initrd。而且这个initrd必须要跟被安装的版本配套一致才行。


5.尝试用alternative方式安装,然后已经下载了支持硬盘启动的initrd,然后能找到硬盘上的光盘映像,但是后面还是出问题,就是内核不兼容,如果选择跳过内核的安装,则后面需要自己编译内核。



6. 没有找到内核模块,Alternative安装奇怪的地方,就是,即使没有内核,它也允许你继续安装其他部分的文件,而不会就此结束。

 
7. 居然也不识别网卡


8. 对home目录加密,即使计算机被偷了,别人也看不到里面的数据,这个安全性考虑得很周到


9. 分区,sdb就是我的固态硬盘
图片

10. 最终的分区方案是这样的,sda是原先的40G硬盘,sdb是固态硬盘,分区1和2已经被windows用了,5可以用作linux,6是交换空间,交换空间是不需要格式化的,linux里面有专门的命令来设置交换空间,它可以是一个分区,也可以是一个文件。
图片 
11. 进入安装,尽管没有成功,不过这一次是路程走得最远,最陌生,也就是最接近终点的一次失败。
图片

12. 回到刚才选内核的界面,有下面3种预置的内核,可惜都不能匹配得上。
图片

 13.很多时候,它都不直接告诉你为什么不行,它只告诉你,有一个log在那个隐蔽的地方,你自己去找吧。
图片
 
14. 基础系统也没有成功,为啥?啥也不说,你懂得,你是expert吗?否则别问。
图片

15.也许是这里的原因,这里安装initrd,也就是用来引导linux的那个东东,generic的意思应该是比较庞大但兼容的硬件比较多的,targeted就是兼容性不高但比较小。
图片

16. 又是失败,从第一次接触linux开始就不断被这种error折磨
图片
 
17. 更早期一点,在导入阶段,谢天谢地,它认出iso来了。那一刻,感觉充满了希望。
图片

18. 不记得是那时候出来的,Debootstrap不懂啥意思,第四虚拟控制台又是啥东西?sha1sum估计是一种校验码。也就是校验码出错的意思吧?这就是程序员,这就是英文老师教的,Keep It Short and Simple,短而且简单,但就是费解,像古文。
图片

19. 这是另外一台机的,大概是某个模块崩溃了,要发个报告给服务器,可是我没有感觉到啊。
图片

20. 安装好的系统是这样的,看看路径是不是正常。
图片

21.  GCC的版本是4.4
图片
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值