分区交错,看了billbear整理的千奇百怪的分区表错误后无解

系统错误报告和讨论
回复
头像
neoh
帖子: 10
注册时间: 2012-10-01 20:26
系统: ubuntu
送出感谢: 0
接收感谢: 0

分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#1

帖子 neoh » 2013-04-23 20:06

40G硬盘 坏道检测:无坏道

ubuntu 12.04

分区:
/dev/sda 1 / 主分区
/dev/sda2 扩展分区
/dev/sda6 swap swap
/dev/sda5 /home 逻辑分区

sudo fdisk -l

Disk /dev/sda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders, total 78165360 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: 0x00030f7d

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 38086655 19042304 83 Linux
/dev/sda2 38088702 78163967 20037633 5 Extended
/dev/sda5 76165120 78163967 999424 82 Linux swap / Solaris
/dev/sda6 38088704 76165119 19038208 83 Linux


Partition table entries are not in disk order

分割磁区的位置顺序没有依照次序,这常发生于删除前面的分割磁区后又再次划分新的分割区所引起的问题

1)在win7下删除分区或格式化都出错
2)尝试了多种工具后都出现错误无法删除分区或格式化
3)在ubuntu live CD下 用fdisk删除分区出错


修复分区顺序:
ubuntu@ubuntu:~$ sudo fdisk /dev/sda

Command (m for help): m
Command action

x extra functionality (experts only)

Command (m for help): x

Expert command (m for help): m
Command action

f fix partition order


Expert command (m for help): f
Done.

Expert command (m for help): r

Command (m for help): p

Disk /dev/sda: 40.0 GB, 40020664320 bytes
255 heads, 63 sectors/track, 4865 cylinders, total 78165360 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: 0x00030f7d

Device Boot Start End Blocks Id System
/dev/sda1 * 2048 38086655 19042304 83 Linux
/dev/sda2 38088702 78163967 20037633 5 Extended
/dev/sda5 38088704 76165119 19038208 83 Linux
/dev/sda6 76165120 78163967 999424 82 Linux swap / Solaris

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

Reboot 后分区依旧没变

在系统修改过的配置或删除数据 reboot后都会还原... :em06

硬盘报废??小白一枚
头像
lhw828
帖子: 2802
注册时间: 2007-03-15 16:58
来自: 湖北武汉
送出感谢: 2 次
接收感谢: 3 次
联系:

Re: 分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#2

帖子 lhw828 » 2013-04-25 22:35

这个错误一般开机的时候会自检
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53
送出感谢: 0
接收感谢: 108 次

Re: 分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#3

帖子 onshoestring » 2013-04-25 22:58

/dev/sda1 * 2048 38086655 19042304 83 Linux
/dev/sda2 38088702 78163967 20037633 5 Extended
/dev/sda5 76165120 78163967 999424 82 Linux swap / Solaris
/dev/sda6 38088704 76165119 19038208 83 Linux

分区重叠,看gparted或者fdsik能不能先删除sda5分区,先要swapoff。

1.先备份分区表:

代码: 全选

sudo sfdisk -d /dev/sda > sda_table
把结果贴到论坛。
2.

代码: 全选

sudo swapoff /dev/sda5
sudo gedit /etc/fstab
把swap那行删除
3.写零擦除mbr中的分区表。

代码: 全选

dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
4.
# partition table of /dev/sda
unit: sectors

/dev/sda1 : start= 63, size= 41945652, Id= 7, bootable
/dev/sda2 : start= 41945715, size= 62926605, Id= 7
/dev/sda3 : start=0, size= 0, Id= 0
/dev/sda4 : start=0, size=0, Id= 0
/dev/sda5 : start=167782923, size= 20964762, Id= b
/dev/sda6 : start=188747748, size= 37736622, Id=83
第1步中备份的分区表类似上面,注意,用你自己第1步的sda_table文件,把sda5那一行删除,把下一行的sda6改成sda5
从文本文件中恢复分区表:

代码: 全选

sudo sfdisk /dev/sda < sda_table
5.新建swap分区,格式化,加入fstab文件中。
头像
neoh
帖子: 10
注册时间: 2012-10-01 20:26
系统: ubuntu
送出感谢: 0
接收感谢: 0

Re: 分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#4

帖子 neoh » 2013-04-29 1:49

neoh@jiang-neoh:~$ sudo sfdisk -d /dev/sda > sda_table
[sudo] password for neoh:
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
# partition table of /dev/sda
unit: sectors

/dev/sda1 : start= 2048, size= 38084608, Id=83, bootable
/dev/sda2 : start= 38088702, size= 40075266, Id= 5
/dev/sda3 : start= 0, size= 0, Id= 0
/dev/sda4 : start= 0, size= 0, Id= 0
/dev/sda5 : start= 76165120, size= 1998848, Id=82
/dev/sda6 : start= 38088704, size= 38076416, Id=83

代码: 全选

sudo swapoff /dev/sda5
sudo gedit /etc/fstab
把swap那行删除

代码: 全选

neoh@jiang-neoh:~$ sudo dd if=/dev/zero of=/dev/sda bs=1 count=64
seek=446
记录了64+0 的读入
记录了64+0 的写出
64字节(64 B)已复制,0.000307837 秒,208 kB/秒
把sda5那一行删除,把下一行的sda6改成sda5

代码: 全选

sudo sfdisk /dev/sda < sda_table
BLKRRPART: 设备或资源忙

This disk is currently in use - repartitioning is probably a bad idea.
Umount all file systems, and swapoff all swap partitions on this disk.
Use the --no-reread flag to suppress this check.
Use the --force flag to overrule all checks.
在ubuntu CD 启动修改

ubuntu@ubuntu:~$ sudo sfdisk /dev/sda < sda_table

Checking that no-one is using this disk right now ...
OK

Disk /dev/sda: 4865 cylinders, 255 heads, 63 sectors/track
Warning: extended partition does not start at a cylinder boundary.
DOS and Linux will interpret the contents differently.
Old situation:
Units = cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0

Device Boot Start End #cyls #blocks Id System
/dev/sda1 * 0+ 2370- 2371- 19042304 83 Linux
/dev/sda2 2370+ 4865- 2495- 20037633 5 Extended
/dev/sda3 0 - 0 0 0 Empty
/dev/sda4 0 - 0 0 0 Empty
/dev/sda5 4741+ 4865- 125- 999424 82 Linux swap / Solaris
/dev/sda6 2370+ 4741- 2371- 19038208 83 Linux
New situation:
Units = sectors of 512 bytes, counting from 0

Device Boot Start End #sectors Id System
/dev/sda1 * 2048 38086655 38084608 83 Linux
/dev/sda2 38088702 78163967 40075266 5 Extended
/dev/sda3 0 - 0 0 Empty
/dev/sda4 0 - 0 0 Empty
/dev/sda5 38088704 76165119 38076416 83 Linux
Warning: partition 1 does not end at a cylinder boundary
Warning: partition 2 does not start at a cylinder boundary
Warning: partition 2 does not end at a cylinder boundary
Warning: partition 5 does not end at a cylinder boundary
Successfully wrote the new partition table

Re-reading the partition table ...

If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)
头像
neoh
帖子: 10
注册时间: 2012-10-01 20:26
系统: ubuntu
送出感谢: 0
接收感谢: 0

Re: 分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#5

帖子 neoh » 2013-04-29 15:16

执行

代码: 全选

sudo dd if=/dev/zero of=/dev/sda bs=512 count=1
清空mbr所有分区信息 ,重启依旧
不需要保留什么分区,有没有办法把整个系统清了把硬盘格了?
在PE系统用了很多工具都没办法删除分区和格式化分区都报错。
:em20
头像
smallapple
论坛版主
帖子: 7867
注册时间: 2009-03-28 15:12
送出感谢: 0
接收感谢: 19 次

Re: 分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#7

帖子 smallapple » 2013-04-29 17:09

中毒?
硬盘保护?
头像
neoh
帖子: 10
注册时间: 2012-10-01 20:26
系统: ubuntu
送出感谢: 0
接收感谢: 0

Re: 分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#8

帖子 neoh » 2013-04-29 18:09

之前坏道检测没检测出坏道

linux基本裸机没保护

可以进入系统工作正常,就是注销或关机后设置过的东西会不会保存

我是手提ubuntu12.04 从寒假用到现在,台式2块硬盘win7+ubuntu12.04
那个台式的ubuntu是寒假前装的寒假回去后就没用过,那时还没有这种情况,分区重叠,但数据可以保存。
最近想安装win8 在分区时出错之后就一直找解决方法。

硬盘坏了就算了,但这几天倒是学了挺多的。。。
头像
smallapple
论坛版主
帖子: 7867
注册时间: 2009-03-28 15:12
送出感谢: 0
接收感谢: 19 次

Re: 分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#9

帖子 smallapple » 2013-04-29 18:44

可以低格试试
头像
neoh
帖子: 10
注册时间: 2012-10-01 20:26
系统: ubuntu
送出感谢: 0
接收感谢: 0

Re: 分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#10

帖子 neoh » 2013-04-29 20:49

smallapple 写了:可以低格试试
基本都试过了,就差DOS debug清MBR
:em06

想试试危险命令不知为什么 sudo rm rf/ 不能用
头像
onshoestring
论坛版主
帖子: 4666
注册时间: 2009-09-06 5:53
送出感谢: 0
接收感谢: 108 次

Re: 分区交错,看了billbear整理的千奇百怪的分区表错误后无解

#11

帖子 onshoestring » 2013-04-29 21:33

neoh 写了:
smallapple 写了:可以低格试试
基本都试过了,就差DOS debug清MBR
:em06

想试试危险命令不知为什么 sudo rm rf/ 不能用
命令是这样的:

代码: 全选

sudo rm -rf /
删除文件没用的,再怎么删除文件都是在某分区,某文件系统内部进行的,分区表在mbr和分区间隙,这条命令没用的。
按smallapple说的低格试试,格不过去到另一台机器再试试,不行就仍了吧。
回复

回到 “Ubuntu错误报告”