GParted显示未分配 终端提示分区之间不能重叠
- cnkilior
- 论坛版主
- 帖子: 4984
- 注册时间: 2007-08-05 17:40
Re: GParted显示未分配 终端提示分区之间不能重叠
用fdisk从
/dev/sda7 20735 25956 41945683+ 7 HPFS/NTFS
开始,到
/dev/sda12 10292 20734 83883366 83 Linux
止
一个一个地删除分区(不要同时删除两个),并立刻重建,就能恢复正常分区顺序。
这样还不会影响到磁盘中的数据。
/dev/sda7 20735 25956 41945683+ 7 HPFS/NTFS
开始,到
/dev/sda12 10292 20734 83883366 83 Linux
止
一个一个地删除分区(不要同时删除两个),并立刻重建,就能恢复正常分区顺序。
这样还不会影响到磁盘中的数据。
- qingdaoocean
- 帖子: 2753
- 注册时间: 2009-05-16 8:47
Re: GParted显示未分配 终端提示分区之间不能重叠
hcym 写了:不听人话,鬼牵着乱转


“飞达”——武汉理工大学开源技术协会:http://vedaclub.org/
- qingdaoocean
- 帖子: 2753
- 注册时间: 2009-05-16 8:47
- qingdaoocean
- 帖子: 2753
- 注册时间: 2009-05-16 8:47
Re: GParted显示未分配 终端提示分区之间不能重叠
请问为什么要从sda7开始?按照你说的步骤,sda2能自动把end改为最后的38913吗?cnkilior 写了:用fdisk从
/dev/sda7 20735 25956 41945683+ 7 HPFS/NTFS
开始,到
/dev/sda12 10292 20734 83883366 83 Linux
止
一个一个地删除分区(不要同时删除两个),并立刻重建,就能恢复正常分区顺序。
这样还不会影响到磁盘中的数据。
“飞达”——武汉理工大学开源技术协会:http://vedaclub.org/
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
Re: GParted显示未分配 终端提示分区之间不能重叠
1、现在为什么还是分区重叠?逻辑分区为什么能跑到扩展分区之外?
主分区表可以有四个表项,如果其中一个是扩展分区,那么在扩展分区的起始处有第一个逻辑分区表,构造和主分区表相同,也有4个位置,但是只使用2个,第一项标明了第一个逻辑分区sda5,第二项仍标示为扩展分区,但是是一个缩小了的扩展分区,起始点是下一张逻辑分区表的位置,终点不变。然后在新扩展分区的起始去读下一个逻辑分区的信息,链式地进行直到最后一张逻辑分区表里不再标示新的扩展分区为止。OS X 下的 fdisk 信息,可以清晰看见每一张逻辑分区表:(它是给出 start - size 而非 start - end)
正常的分区表,每一张逻辑分区表里标示的扩展分区的终点都和主分区表里标示的扩展分区的终点相同。你的分区表在某一个逻辑分区表处扩展分区终点被扩大以包含超出主表里扩展分区范围外的逻辑分区。这就无法通过分区表合法性的检查,这种扩展分区们终点不一致的错误,大概也被 parted 归为分区重叠。
产生这样错误的原因,很可能是原先的扩展分区乱序,而后使用了 windows 下的分区工具。linux 允许乱序的分区并且经常这么做,比如缩小sda6,在 sda6 和 sda7 之间创建新分区,那么新的 sda8 会位于 6 和 7 之间,这样做是为了保证老分区的设备名不变以免影响原有 grub 的引导。而 windows 通常会把原来的 sda7 改为 sda8,新插入的分区作为 sda7。windows 保证分区的顺序排列而 linux 保证老分区设备名不变。乱序的主分区 windows 分区工具在调整时通常能够处理而不致搞坏分区表(但是它一定会重排分区而可能导致 linux 的引导问题),乱序的逻辑分区比较麻烦,因为链式的扩展分区的起点忽前忽后而不是递增,windows下很多分区工具设计时就不曾预料分区表可以是这样而无法正确处理。所以在安装之前尽量在 linux 下先把分区顺序整理一下以避免留下隐患。fdisk 里面有个 Expert command ,里面可以 fix partition order。
2、现在从sda8往后的逻辑分区跑到了扩展分区的后面。我有一个想法:把从sda2开始往后的全都删掉,新建sda2,起始分别为 6376,38913.然后一步步新建sda5之后的分区,各分区起始位置保持以上不变,这样是不是就可以恢复了,而且一般情况下各分区数据还在?(我已经以防万一把数据备份了,就算不在了也不要紧,只是问下从原理上讲是不是这样?)
想法是可行的,不过 fdisk -l 给出的是不够精细的结果,必须要根据 fdisk -lu 的精确结果来做。删除的时候要先删逻辑分区,然后删扩展分区。如果先删 sda2,逻辑分区瞬间就全部消失,再建立 sda2 时原来的逻辑分区又全部出现。
新建分区的时候注意设置正确的分区 id。你在 13 楼新建的 sda12 id 不对。(而且你没有原先的 fdisk -lu 信息, sda12 的起止不一定正确)
如果没能成功,testdisk 应该可以挽救。
主分区表可以有四个表项,如果其中一个是扩展分区,那么在扩展分区的起始处有第一个逻辑分区表,构造和主分区表相同,也有4个位置,但是只使用2个,第一项标明了第一个逻辑分区sda5,第二项仍标示为扩展分区,但是是一个缩小了的扩展分区,起始点是下一张逻辑分区表的位置,终点不变。然后在新扩展分区的起始去读下一个逻辑分区的信息,链式地进行直到最后一张逻辑分区表里不再标示新的扩展分区为止。OS X 下的 fdisk 信息,可以清晰看见每一张逻辑分区表:(它是给出 start - size 而非 start - end)
代码: 全选
bill-beardemacbook:~ billbear$ fdisk /dev/rdisk1
Disk: /dev/rdisk1 geometry: 19457/255/63 [312581808 sectors]
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
*1: AF 0 1 1 - 1023 254 63 [ 63 - 17039360] HFS+
2: AF 1023 254 63 - 1023 254 63 [ 17039484 - 63176704] HFS+
3: 0B 1023 254 63 - 1023 254 63 [ 80216199 - 167772160] Win95 FAT-32
4: 05 1023 254 63 - 1023 254 63 [ 247995405 - 64581300] Extended DOS
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: 83 1023 254 63 - 1023 254 63 [ 247995468 - 29286432] Linux files*
2: 05 1023 254 63 - 1023 254 63 [ 277281900 - 33206355] Extended DOS
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: 83 1023 254 63 - 1023 254 63 [ 277281963 - 33206292] Linux files*
2: 05 1023 254 63 - 1023 254 63 [ 310488255 - 2088450] Extended DOS
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
Signature: 0xAA55
Starting Ending
#: id cyl hd sec - cyl hd sec [ start - size]
------------------------------------------------------------------------
1: 82 1023 254 63 - 1023 254 63 [ 310488318 - 2088387] Linux swap
2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
产生这样错误的原因,很可能是原先的扩展分区乱序,而后使用了 windows 下的分区工具。linux 允许乱序的分区并且经常这么做,比如缩小sda6,在 sda6 和 sda7 之间创建新分区,那么新的 sda8 会位于 6 和 7 之间,这样做是为了保证老分区的设备名不变以免影响原有 grub 的引导。而 windows 通常会把原来的 sda7 改为 sda8,新插入的分区作为 sda7。windows 保证分区的顺序排列而 linux 保证老分区设备名不变。乱序的主分区 windows 分区工具在调整时通常能够处理而不致搞坏分区表(但是它一定会重排分区而可能导致 linux 的引导问题),乱序的逻辑分区比较麻烦,因为链式的扩展分区的起点忽前忽后而不是递增,windows下很多分区工具设计时就不曾预料分区表可以是这样而无法正确处理。所以在安装之前尽量在 linux 下先把分区顺序整理一下以避免留下隐患。fdisk 里面有个 Expert command ,里面可以 fix partition order。
2、现在从sda8往后的逻辑分区跑到了扩展分区的后面。我有一个想法:把从sda2开始往后的全都删掉,新建sda2,起始分别为 6376,38913.然后一步步新建sda5之后的分区,各分区起始位置保持以上不变,这样是不是就可以恢复了,而且一般情况下各分区数据还在?(我已经以防万一把数据备份了,就算不在了也不要紧,只是问下从原理上讲是不是这样?)
想法是可行的,不过 fdisk -l 给出的是不够精细的结果,必须要根据 fdisk -lu 的精确结果来做。删除的时候要先删逻辑分区,然后删扩展分区。如果先删 sda2,逻辑分区瞬间就全部消失,再建立 sda2 时原来的逻辑分区又全部出现。
新建分区的时候注意设置正确的分区 id。你在 13 楼新建的 sda12 id 不对。(而且你没有原先的 fdisk -lu 信息, sda12 的起止不一定正确)
如果没能成功,testdisk 应该可以挽救。
- 黄美姬
- 帖子: 8428
- 注册时间: 2009-10-08 11:15
- 来自: 大城市铁岭
Re: GParted显示未分配 终端提示分区之间不能重叠
删除8-11就行
我们是命运的妓女,它把我们都嫖了
N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
终端彩色:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\u@\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
N卡驱动:http://www.nvidia.cn/Download/index.aspx?lang=cn
极品飞车:http://www.geforce.cn/optimize/optimal- ... ts-450-ops
孤岛危机优化设置:http://www.geforce.cn/optimize/optimal- ... tx-450-ops
终端彩色:cp /etc/skel/.bashrc ~/
PS1="\[\e]2;\u@\H \w\a\e[32;1m\]\T$\[\e[0m\] "
http://cdimage.ubuntu.com/
http://releases.ubuntu.com/
- qingdaoocean
- 帖子: 2753
- 注册时间: 2009-05-16 8:47
Re: GParted显示未分配 终端提示分区之间不能重叠
不好意思,这几天事情比较多,没来得及及时看帖~感谢billbear的详细解释,学习了billbear 写了:1、现在为什么还是分区重叠?逻辑分区为什么能跑到扩展分区之外?
主分区表可以有四个表项,如果其中一个是扩展分区,那么在扩展分区的起始处有第一个逻辑分区表,构造和主分区表相同,也有4个位置,但是只使用2个,第一项标明了第一个逻辑分区sda5,第二项仍标示为扩展分区,但是是一个缩小了的扩展分区,起始点是下一张逻辑分区表的位置,终点不变。然后在新扩展分区的起始去读下一个逻辑分区的信息,链式地进行直到最后一张逻辑分区表里不再标示新的扩展分区为止。OS X 下的 fdisk 信息,可以清晰看见每一张逻辑分区表:(它是给出 start - size 而非 start - end)正常的分区表,每一张逻辑分区表里标示的扩展分区的终点都和主分区表里标示的扩展分区的终点相同。你的分区表在某一个逻辑分区表处扩展分区终点被扩大以包含超出主表里扩展分区范围外的逻辑分区。这就无法通过分区表合法性的检查,这种扩展分区们终点不一致的错误,大概也被 parted 归为分区重叠。代码: 全选
bill-beardemacbook:~ billbear$ fdisk /dev/rdisk1 Disk: /dev/rdisk1 geometry: 19457/255/63 [312581808 sectors] Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ *1: AF 0 1 1 - 1023 254 63 [ 63 - 17039360] HFS+ 2: AF 1023 254 63 - 1023 254 63 [ 17039484 - 63176704] HFS+ 3: 0B 1023 254 63 - 1023 254 63 [ 80216199 - 167772160] Win95 FAT-32 4: 05 1023 254 63 - 1023 254 63 [ 247995405 - 64581300] Extended DOS Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ 1: 83 1023 254 63 - 1023 254 63 [ 247995468 - 29286432] Linux files* 2: 05 1023 254 63 - 1023 254 63 [ 277281900 - 33206355] Extended DOS 3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ 1: 83 1023 254 63 - 1023 254 63 [ 277281963 - 33206292] Linux files* 2: 05 1023 254 63 - 1023 254 63 [ 310488255 - 2088450] Extended DOS 3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused Signature: 0xAA55 Starting Ending #: id cyl hd sec - cyl hd sec [ start - size] ------------------------------------------------------------------------ 1: 82 1023 254 63 - 1023 254 63 [ 310488318 - 2088387] Linux swap 2: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 3: 00 0 0 0 - 0 0 0 [ 0 - 0] unused 4: 00 0 0 0 - 0 0 0 [ 0 - 0] unused
产生这样错误的原因,很可能是原先的扩展分区乱序,而后使用了 windows 下的分区工具。linux 允许乱序的分区并且经常这么做,比如缩小sda6,在 sda6 和 sda7 之间创建新分区,那么新的 sda8 会位于 6 和 7 之间,这样做是为了保证老分区的设备名不变以免影响原有 grub 的引导。而 windows 通常会把原来的 sda7 改为 sda8,新插入的分区作为 sda7。windows 保证分区的顺序排列而 linux 保证老分区设备名不变。乱序的主分区 windows 分区工具在调整时通常能够处理而不致搞坏分区表(但是它一定会重排分区而可能导致 linux 的引导问题),乱序的逻辑分区比较麻烦,因为链式的扩展分区的起点忽前忽后而不是递增,windows下很多分区工具设计时就不曾预料分区表可以是这样而无法正确处理。所以在安装之前尽量在 linux 下先把分区顺序整理一下以避免留下隐患。fdisk 里面有个 Expert command ,里面可以 fix partition order。
2、现在从sda8往后的逻辑分区跑到了扩展分区的后面。我有一个想法:把从sda2开始往后的全都删掉,新建sda2,起始分别为 6376,38913.然后一步步新建sda5之后的分区,各分区起始位置保持以上不变,这样是不是就可以恢复了,而且一般情况下各分区数据还在?(我已经以防万一把数据备份了,就算不在了也不要紧,只是问下从原理上讲是不是这样?)
想法是可行的,不过 fdisk -l 给出的是不够精细的结果,必须要根据 fdisk -lu 的精确结果来做。删除的时候要先删逻辑分区,然后删扩展分区。如果先删 sda2,逻辑分区瞬间就全部消失,再建立 sda2 时原来的逻辑分区又全部出现。
新建分区的时候注意设置正确的分区 id。你在 13 楼新建的 sda12 id 不对。(而且你没有原先的 fdisk -lu 信息, sda12 的起止不一定正确)
如果没能成功,testdisk 应该可以挽救。

发现自己对分区表还不了解,先google学习下

“飞达”——武汉理工大学开源技术协会:http://vedaclub.org/
- qingdaoocean
- 帖子: 2753
- 注册时间: 2009-05-16 8:47
Re: GParted显示未分配 终端提示分区之间不能重叠
请问这样sda2就自动把end改为最后的38913吗?10.04发布之后就大胆试下黄美姬 写了:删除8-11就行

“飞达”——武汉理工大学开源技术协会:http://vedaclub.org/
- qingdaoocean
- 帖子: 2753
- 注册时间: 2009-05-16 8:47
Re: GParted显示未分配 终端提示分区之间不能重叠
今天下好了10.04的镜像,大胆用fdisk修复了一下,事实证明这种想法确实可行。我按照你的提示,用fdisk先删掉所有逻辑分区,然后删掉sda2。然后新建sda2,end用默认最大值,然后依次新建逻辑分区,start和end不变(需要保留数据的分区当然要不变,但是有几个分区是我确实想改的,所以那个改了)。写了之后一切正常了,ubuntu各分区的数据都还在billbear 写了: 想法是可行的

“飞达”——武汉理工大学开源技术协会:http://vedaclub.org/
- qingdaoocean
- 帖子: 2753
- 注册时间: 2009-05-16 8:47
Re: GParted显示未分配 终端提示分区之间不能重叠
现在把新的分区信息贴出来:
代码: 全选
ocean@ocean-desktop:~$ sudo fdisk -l
Disk /dev/sda: 320.1 GB, 320072933376 bytes
255 heads, 63 sectors/track, 38913 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Disk identifier: 0x7c797c79
Device Boot Start End Blocks Id System
/dev/sda1 * 1 6375 51207156 7 HPFS/NTFS
/dev/sda2 6376 38913 261361485 5 Extended
/dev/sda5 6376 10291 31455238+ 83 Linux
/dev/sda6 10292 20734 83883366 83 Linux
/dev/sda7 20735 25956 41945683+ 83 Linux
/dev/sda8 25957 29993 32427171 83 Linux
/dev/sda9 29994 32483 20000893+ 83 Linux
/dev/sda10 32484 38562 48829536 83 Linux
/dev/sda11 38563 38913 2819376 83 Linux
ocean@ocean-desktop:~$ sudo parted /dev/sda print
Model: ATA ST3320613AS (scsi)
磁盘 /dev/sda: 320GB
Sector size (logical/physical): 512B/512B
分区表:msdos
数字 开始: End 大小 类型 文件系统 标志
1 32.3kB 52.4GB 52.4GB primary ntfs 启动
2 52.4GB 320GB 268GB extended
5 52.4GB 84.6GB 32.2GB logical ntfs
6 84.6GB 171GB 85.9GB logical ntfs
7 171GB 213GB 43.0GB logical ntfs
8 213GB 247GB 33.2GB logical ext4
9 247GB 267GB 20.5GB logical ext4
10 267GB 317GB 50.0GB logical ext4
11 317GB 320GB 2887MB logical linux-swap(v1)
ocean@ocean-desktop:~$
“飞达”——武汉理工大学开源技术协会:http://vedaclub.org/
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42
Re: GParted显示未分配 终端提示分区之间不能重叠
这几个 ID 最好改一下Device Boot Start End Blocks Id System
/dev/sda1 * 1 6375 51207156 7 HPFS/NTFS
/dev/sda2 6376 38913 261361485 5 Extended
/dev/sda5 6376 10291 31455238+ 83 Linux
/dev/sda6 10292 20734 83883366 83 Linux
/dev/sda7 20735 25956 41945683+ 83 Linux
/dev/sda8 25957 29993 32427171 83 Linux
/dev/sda9 29994 32483 20000893+ 83 Linux
/dev/sda10 32484 38562 48829536 83 Linux
/dev/sda11 38563 38913 2819376 83 Linux
- qingdaoocean
- 帖子: 2753
- 注册时间: 2009-05-16 8:47
Re: GParted显示未分配 终端提示分区之间不能重叠
多谢提醒。这几天事情比较多,没来得及好好研究分区表知识……明天google一下,不明白的话恐怕还要向你请教诶billbear 写了: 这几个 ID 最好改一下

“飞达”——武汉理工大学开源技术协会:http://vedaclub.org/
- wangdu2002
- 帖子: 13284
- 注册时间: 2008-12-13 19:39
- 来自: 物华天宝人杰地灵
Re: GParted显示未分配 终端提示分区之间不能重叠
又进来跟熊哥学习了。。。
苹果的Fdisk这么强。。。不如熊哥把它移植到Linux系统中来吧。

苹果的Fdisk这么强。。。不如熊哥把它移植到Linux系统中来吧。

行到水穷处,坐看云起时。
海内生明月,天涯共此夕。
--------------------吾本独!
海内生明月,天涯共此夕。
--------------------吾本独!
-
- 帖子: 3681
- 注册时间: 2008-05-03 23:42