问题描述:
由于电脑之前安装过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的安装而得到久违分区
推荐本站淘宝优惠价购买喜欢的宝贝:
本文链接:https://hqyman.cn/post/8460.html 非本站原创文章欢迎转载,原创文章需保留本站地址!
打赏微信支付宝扫一扫,打赏作者吧~
休息一下~~