Bug 5302

Summary: parted неверно определяет количество разделов на диске
Product: Sisyphus Reporter: Anton Farygin <rider>
Component: partedAssignee: Anton Farygin <rider>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: normal    
Priority: P2 CC: mike, mouse, rider
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on:    
Bug Blocks: 5305    

Description Anton Farygin 2004-10-10 19:21:07 MSD
# fdisk -l /dev/sda

Disk /dev/sda: 16 MB, 16034304 bytes
1 heads, 31 sectors/track, 1010 cylinders
Units = cylinders of 31 * 512 = 15872 bytes

Disk /dev/sda doesn't contain a valid partition table

но при этом:
# parted /dev/sda
GNU Parted 1.6.15
Copyright (C) 1998 - 2004 Free Software Foundation, Inc.
This program is free software, covered by the GNU General Public License.

This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.  See the GNU General Public License for more details.

Using /dev/sda
(parted) p                                                                
Disk geometry for /dev/sda: 0.000-15.291 megabytes
Disk label type: loop
Minor    Start       End     Filesystem  Flags
1          0.000     15.291  ext3 

На диске же в реальности нет ни одного раздела - он сам весь из себя
представляет один раздел с одной файловой системой.


В итоге, например, qtparted отображает информацию об /dev/sda1, хотя такого нет
и в помине.
Comment 1 Anton Farygin 2004-10-10 19:22:13 MSD
2inger: это грозит наличием в инсталлере ошибки.
Comment 2 Anton Farygin 2004-10-10 20:20:37 MSD
ped_disk_get_primary_partition_count также вовзращает ошибочное количество
разделов. На устройстве нет вообще разделов, просто создана файловая система.
Возвращается один раздел ;-(
Comment 3 inger@altlinux.org 2004-10-11 12:35:52 MSD
Ну что ж будем разбираться. Это флешка? 
Надо всё это по хорошему пробивать в upstream. 
Как доберёмся до этой стадии - посмотрим по подробнее чем можно исправить. 
 
Comment 4 Anton Farygin 2004-10-11 14:03:53 MSD
(In reply to comment #3)
> Ну что ж будем разбираться. Это флешка? 
Да. Но с любыми другими block устройствами будет то-же самое.
> Надо всё это по хорошему пробивать в upstream. 
> Как доберёмся до этой стадии - посмотрим по подробнее чем можно исправить. 
>  

Вся проблема в том, что libparted оперирует разделами жесткого диска. При этом
похоже они сделали workaround для тех случаев, когда разделов как таковых нет
(нет таблицы разделов). Только вот как сделать правильно - совсем не понятно,
ибо кончается это тем, что архитектура libparted не позволяет работать с
устройствами без таблицы разделов.

Comment 5 Michael Shigorin 2006-10-28 17:56:32 MSD
reassign
Comment 6 led 2006-11-06 13:11:57 MSK
(In reply to comment #5)
> reassign

проблема ещё актуальна?
Comment 7 Anton Farygin 2006-11-07 11:49:31 MSK
наверное актуальна
2lioka: глянь плз.
Comment 8 led 2006-11-15 11:12:46 MSK
(In reply to comment #0)

> # parted /dev/sda
............
> Using /dev/sda
> (parted) p                                                                
> Disk geometry for /dev/sda: 0.000-15.291 megabytes
> Disk label type: loop
> Minor    Start       End     Filesystem  Flags
> 1          0.000     15.291  ext3 
> 
> На диске же в реальности нет ни одного раздела - он сам весь из себя
> представляет один раздел с одной файловой системой.

Согласно parted.info, "Disk label type: loop" означает:
loop (raw disk access)

> В итоге, например, qtparted отображает информацию об /dev/sda1, хотя такого 
нет
> и в помине.

То, что qtparted неправильно (по-вашему мнению) обрабатывает информацию, 
предоставляемую parted'ом (а точнее - libparted'ом) - это уже проблема qtparted 
(и в gparted, похоже, та же ситуация).
Исходя из вышесказанно, повесте, пожалуйста, соответствующие баги на 
qtparted/gparted (закрыв текущую) с описание предполагаемого правильного их 
поведения в случае "Disk label type: loop"
Comment 9 led 2006-11-23 12:25:51 MSK
Я так понял, что это уже никого не интересует, поэтому багу я закрываю, как 
несуществующую. То, что фронтэнды к libparted некорректно обрабатывают 
результаты функций libparted ИМХО вины последнего нет.
Перевешивайте баги на фронтэнды (qtparted/gparted/etc) - соотв. патч для 
qtparted я уже сделал.