zoukankan      html  css  js  c++  java
  • 安装XP和Ubuntu双系统问题——Ubuntu安装时无法识别原有系统

      我主机本来安装了windows xp 和unbuntu15.04,由于在ubuntu下不小心卸载某依赖后,无法登入桌面,网上查了好多资料,原因各种,解决途径也各种,最终是还没有解决问题。各种更新,各种补丁,各种命令都尝试,然后还是水平有限,折腾了2天,不想无奈之下,只能选择重装了。具体的解决登入桌面的过程我这遍就不详细写了,太凌乱,太多了,我已经记不清楚用了多少方法了,都无效,所以有需要的朋友,还是自己上baidu看看吧,这里就不再献丑了。

      本以为重装是一件非常无脑和省事的事,谁知道这次遇到了点小麻烦,于是诞生了这篇小博。

      遇到的问题:

      下载并制作完Ubuntu14.04 USB启动盘后(关于怎么下载和制作Ubuntu USB 安装盘百度很多,请各位自行查找),进入安装界面无后,却无法找到我原先安装好的XP和Ubuntu系统。我之前用fdisk -l命令并没发现什么问题,而且对fdisk参数也不熟,就并没有深入研究,但是网上有人提示可能是磁盘分区表出现了问题,于是我决定进入windows系统用diskgenius软件检测,果然检测结果显示最后个Ubuntu的/home(/dev/sda9)分区超出硬盘边际,那么怎么解决呢,我企图用该软件自带的修复工具修复,但是它会把最后个分区自动格式化成NTFS格式,大家都知道NTFS是xp的格式,而ubuntu需要ext格式,所以此办法不行。

      然后继续搜索ubuntu下修复磁盘的工具,搜到2个比较靠谱的工具,一个是testdisk,另一个就是我之前用的fdisk(因为我之前没对其参数进行研究,后来才发现fdisk是如此强大)。我首先用testdisk,因为名字易懂嘛,感觉也很专业,用起来确实也很专业,各种选项,不过很容易懂,其中有一页显示/dev/sda2, /dev/sda9都是属于extend分区,而sda2的system type是 Win95 Ext'd (LBA), sda9的system type是Linux,说明sda2包含了sda9,这一点也显示出来,最关键一句是说sda9的编辑范围已经超出了sda2得最大范围,由此可以肯定也是硬盘分区出现了问题,可能是硬盘使用太长,空间进一步萎缩引起的。然后它建议我进行重新建立分配硬盘分区表,不巧的是它的修复过程几乎与diskgenius换汤不换药,也是将最后Ubuntu分区直接分为NTFS,于是回退。

      最后开始研究fdisk,正戏来了,当然要详细点,只可惜没图配合:

      1st,sudo fdisk -l,显示硬盘分区表信息,显示有2块硬盘,分别是,sda, sdb,自然我们关心的是我们的本地磁盘sda,而sdb只是USB安装盘

      2nd,sudo fdisk /dev/sda,这个时候,命令行会提示你选择m来显示所有参数信息,照着做,输入m

      3rd, 输入m后,显示一排信息,我们可以使用p命令显示当然这块硬盘的分区表,你不会发现问题。

      4th, 显示分区表后,我尝试用v来进行verify 分区表,结果悲喜交加,悲是因为显示sda9分区不完全在sda2分区之内,喜是因为我们进一步验证了问题的所在。

      5th, 然后再按m,发现有2个添加(n)和删除命令(d),就试图自己手动调整分区表,首先先删除了swap 分区,然后再增加一个小swap分区。(注意删除分区的时候,我是先将/etc/fstab下的相关分区配置行都注释了,增加完后再恢复,这步操作有没有必要,没验证,读者可以自行尝试)。结果并不如愿,再次执行v的时候还是报同样的错误,说明/dev/sda9(/home分区)的地址没有改变,还是越界。

      6th, 再次尝试删除/home分区(反正需要重装,也会被格式化的),然后重新添加/home分区,这次操作后,执行v命令终于没报越界错误,看到曙光啦

      重启,进入usb引导模式,果然,ubuntu安装系统可以识别原有的xp系统和ubuntu15.04系统了。

      本篇完结(唯一遗憾,无图佐证)。

      

      

  • 相关阅读:
    7月15日考试 题解(链表+状压DP+思维题)
    暑假集训日记
    C# .NET 使用 NPOI 生成 .xlsx 格式 Excel
    JavaSE 基础 第42节 局部内部类
    JavaSE 基础 第41节 匿名内部类
    JavaSE 基础 第40节 内部类概述
    JavaSE 基础 第39节 接口的应用
    JavaSE 基础 第38节 接口的实现
    JavaSE 基础 第37节 接口概述
    JavaSE 基础 第36节 抽象类概述与使用
  • 原文地址:https://www.cnblogs.com/rainey-forrest/p/4803275.html
Copyright © 2011-2022 走看看