<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>洞天涂</title>
	<atom:link href="http://namiheike.com/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://namiheike.com/blog</link>
	<description>纳米黑客的BLOG</description>
	<lastBuildDate>Sun, 29 Jan 2012 12:42:10 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ubuntu和分区表都崩溃之后的修复经验</title>
		<link>http://namiheike.com/blog/ubuntu-partition-table-collapse-repair/</link>
		<comments>http://namiheike.com/blog/ubuntu-partition-table-collapse-repair/#comments</comments>
		<pubDate>Sun, 29 Jan 2012 04:05:21 +0000</pubDate>
		<dc:creator>namiheike</dc:creator>
				<category><![CDATA[苦逼的程序员]]></category>
		<category><![CDATA[ubuntu]]></category>
		<category><![CDATA[分区表]]></category>

		<guid isPermaLink="false">http://namiheike.com/blog/?p=8</guid>
		<description><![CDATA[起因是手贱,经过是系统进不去,分区表搞坏,结局是重装系统. 期间学习了分区表基本知识和fdisk的基本使用方法&#8230; 首先让我来讲述整个事情的经过,然后说明解决方案&#8230; 首先是手贱把ubuntu升级到了11.04,系统开始各种出错,不过还勉强能用,接下来更加手贱的在gnome3发布的第一时间更新了gnome3&#8230;然后重启之后停留在登录界面,不能选择用户,只有一个按钮,点开是 重启 挂起 关机&#8230;很多人都遇到了这个问题.据说,杯具的源头是使用ppa源不能正确的安装gnome-shell,这时可以进入恢复模式之后,使用apt-get install unity或者apt-get install gnome-shell来解决,但我实在没搞明白在命令行中怎么连网,于是这条路断了. 接下来的考虑是使用livecd来重新安装ubuntu,于是刻了个盘,启动,安装,一切正常&#8211;直到选择分区的时候&#8211;只能检测到硬盘,不能检测到分区信息.在这里(orz billbear大神)查到了解决方案.原因就是分区表中有错误,扩展分区的结尾扇区超过了总扇区数.也就是parted爆的错误”Can&#8217;t have a partition outside the disk!” 下面是我的分区表信息,重点关注红色部分 ubuntu@ubuntu:~$ sudo fdisk -lu Disk /dev/sda: 320.1 GB, 320072933376 bytes 255 heads, 63 sectors/track, 38913 cylinders, total 625142448 sectors Units &#8230; <a href="http://namiheike.com/blog/ubuntu-partition-table-collapse-repair/">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>起因是手贱,经过是系统进不去,分区表搞坏,结局是重装系统.<br />
期间学习了分区表基本知识和fdisk的基本使用方法&#8230;<br />
首先让我来讲述整个事情的经过,然后说明解决方案&#8230;</p>
<p>首先是手贱把ubuntu升级到了11.04,系统开始各种出错,不过还勉强能用,接下来更加手贱的在gnome3发布的第一时间更新了gnome3&#8230;然后重启之后停留在登录界面,不能选择用户,只有一个按钮,点开是 重启 挂起 关机&#8230;<a href="http://forum.ubuntu.org.cn/viewforum.php?f=49" target="_blank">很多人</a>都遇到了这个问题.据说,杯具的源头是使用ppa源不能正确的安装gnome-shell,这时可以进入恢复模式之后,使用apt-get install unity或者apt-get install gnome-shell来解决,但我实在没搞明白在命令行中怎么连网,于是这条路断了.<br />
接下来的考虑是使用livecd来重新安装ubuntu,于是刻了个盘,启动,安装,一切正常&#8211;直到选择分区的时候&#8211;只能检测到硬盘,不能检测到分区信息.在<a href="http://forum.ubuntu.org.cn/viewtopic.php?f=77&amp;t=194802" target="_blank">这里</a>(orz billbear大神)查到了解决方案.原因就是分区表中有错误,扩展分区的结尾扇区超过了总扇区数.也就是parted爆的错误”Can&#8217;t have a partition outside the disk!”</p>
<p>下面是我的分区表信息,重点关注红色部分</p>
<pre>ubuntu@ubuntu:~$ sudo fdisk -lu

Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders, <span style="color: #ff0000;">total 625142448 sectors</span>
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: 0x3dfce8ac

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 20408319 10203136 7 HPFS/NTFS
/dev/sda2 20408320 20613119 102400 7 HPFS/NTFS(c盘)
/dev/sda3 20613120 174580399 76983640 7 HPFS/NTFS
/dev/sda4 174580434 <span style="color: #ff0000;">625153409</span> 225286488 f W95 Ext'd (LBA)
/dev/sda5 174583808 338423807 81920000 7 HPFS/NTFS(d盘)
/dev/sda6 338425353 368418640 14996644 83 Linux(挂载到/)
/dev/sda7 368418708 372418811 2000052 82 Linux swap / Solaris(swap)
/dev/sda8 372418893 382411252 4996180 83 Linux(挂载到/tmp)
/dev/sda9 382411323 625137338 121363008 83 Linux(挂载到/home)</pre>
<p>可见sda4的end比total sectors还要大..</p>
<p>我也不知道这个错误是怎么产生的,不过貌似大部分的电脑分区表都有这样或那样的错误,大部分情况下都不影响使用,但linux的parted是错误零容忍的,于是使用<a href="http://ubuntuforums.org/showthread.php?t=352723" target="_blank">这里</a>的方式手动修改分区表.然后又遇到了问题&#8230;<br />
修改的分区表的思路就是先删除扩展分区,然后重新建立扩展分区和其中所有的分区,并且把错误的end sector修正过来,我顺利的删除了sda4,然后重建了sda4和sda5,但是当重建sda6的时候,明明在start sector输入了大于sda5 end sector的数值,依然提示”allocated”就是已经被分配了.一番google无果,考虑到ubuntu升到11.04之后已经很不稳定,而且一直想调整/home的分区大小无果,就决定直接删掉所有的ubuntu分区重新安装,反正既然能正确的重建sda5,就能保住d盘,c盘(sda2)也不动,这样windows也没有影响,而且经测试重建了sda4就可以被ubuntu安装程序正常识别分区信息,遂删除sda6789.<br />
重启之后杯具袭来,因为这时系统还是tmd万恶的grub引导的,然后grub找不到ubuntu的分区了&#8230;<br />
不过其实也无所谓,进livecd直接重装ubuntu,问题解决,windows无恙.</p>
<p>结论1,不要当小白,比如11.04和gnome3<br />
结论2,随时备好livecd是好习惯<br />
结论3,分区表很脆弱,win和linux的分区系统其实还是有细微差别的,使用第三方分区软件,或者品牌机的系统恢复分区,ms的动态分区什么的,都会导致分区表出现错误不能被parted识别.这是请fdisk看下是不是有分区范围越界,分区重叠,等错误,手动修改就好.</p>
]]></content:encoded>
			<wfw:commentRss>http://namiheike.com/blog/ubuntu-partition-table-collapse-repair/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

