win7系统上安装ubuntu,分区时无法显示win7上已分好的区方法解决 && Error:Can't have a partition outside the disk

问题描述:

由于电脑之前安装过win7+ubuntu,操作ubuntu时误删重要文件,导致重装ubuntu,由于不是经过正确途径卸载ubuntu(直接在win7自带磁盘管理工具中删除安装ubuntu的分区),结果用u盘安装ubuntu时,进行分区过程中无法识别出win7里已经分好的区,而是直接显示在整个硬盘上来分区。


中文网站里很多都是直接格式化整个硬盘之类,后来在一个英文网站里找到了解决方案。

http://gparted.org/h2-fix-msdos-pt.php

发现根本原因是,磁盘分区时出现错误,使得最后一个拓展分区越界了,使得硬盘分区的容量超过了硬盘实际容量(真不可思议吧!!!),使得ubuntu根本无法识别硬盘各个分区了。


发现错误点:

在终端输入命令 

parted /dev/sda  ##sda为所系统所在硬盘

接着输入 print

不出意外的话,会出现"Error:Can't have a partition outside the disk"==》这就是问题根本所在

将该error google下终于找到了解决方案


第一步,在终端输入命令 

sudo fdisk -l -u /dev/sda  ##查看硬盘分区情况,查看该硬盘的分区情况,之后请仔细查看各个分区的边界情况,看是否有越界

比如:

    $ sudo fdisk -l -u /dev/sda

    Disk /dev/sda: 60.0 GB, 60011642880 bytes
    255 heads, 63 sectors/track, 7296 cylinders, total 117210240 sectors  -->  注意这里是总的硬盘容量
    Units = sectors of 1 * 512 = 512 bytes
    Sector size (logical/physical): 512 bytes / 512 bytes
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    Disk identifier: 0x000b2d37

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1   *          63    81922347    40961142+   7  HPFS/NTFS/exFAT
    /dev/sda2        81915435   117210239    17647402+   5  Extended    --->这个拓展分区的终端居然超过了总容量,这就是问题所在
    /dev/sda5        81915498    98494514     8289508+  83  Linux
    /dev/sda6        98494578    99008594      257008+  82  Linux swap / Solaris
    /dev/sda7        99008658   115394894     8193118+   b  W95 FAT32

第二步,将该值修改为正确的值

以这里为例,我们需要将该End值设置为 117210240 - 1 = 117210239 ,那么其对应的大小则应该为End - Start + 1 = 117210239 - 81915435 + 1 = 35294806  ->注意该值,下面用到


将该盘的分区信息用文本保存下来

    $ sudo sfdisk -d /dev/sda > sda-backup.tx
然后用编辑器打开(可以用vi),得到分区信息:

可以肯定,/dev/sda2的size应该超过了 35294806 ,那么将该值修改为 35294806

然后将分区信息重新写会
 
  
$ sudo sfdisk /dev/sda < sda-backup.txt

第三步,验证

重新输入 sudo parted /dev/sda

输入print

不出意外的话,你应该可以看到该盘的分区信息了,而不会出现前面那个错误提示了


第四步,恭喜你可以重新安装ubuntu,而不损坏你以前的win7分区了,直接进入ubuntu的安装而得到久违分区

你可能感兴趣的:(Ubuntu)