bug-parted
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#36908: parted optimal alignment fails minimal alignment check


From: Volta
Subject: bug#36908: parted optimal alignment fails minimal alignment check
Date: Sat, 3 Aug 2019 12:15:01 -0400

I'm not a parted dev, just a user, but I've run into this same issue
several times.  This wouldn't happen to be a USB device using the UAS
driver? IME setting quirks mode for such devices so they use the
usb-storage driver instead yields sensible values for optimal_io_size,
etc. so parted can do the right thing with 0% and properly align the
partitions.  This also works around other issues I've had with these
devices randomly disconnecting when using UAS. My
/etc/modprobe.d/usbdisks.conf file contains:

options usb-storage
quirks=0x0bc2:0xab31:u,0x0bc2:0x3322:u,0x0bc2:0xa0a4:u,0x0bc2:0x331a:u,0x0bc2:3343:u

get the device identifiers for the affected device(s) from lsusb,
stick them in there, then 'depmod -a' and reboot or remove and
reattach the device(s) (the latter should work, but sometimes the
kernel doesn't do the right thing, and I've not bothered to
investigate further as I only use USB disks on workstations that are
easily rebooted), then try parted again.

Doesn't really "solve" the problem, which I understand to be with the
UAS implementation in these devices, but at least it is a usable
workaround.

On Sat, 3 Aug 2019 at 11:18, George Fedorov <address@hidden> wrote:
>
> Hi,
>
>
> I was directed here by the page at 
> https://www.gnu.org/software/parted/bugs.shtml ; is there any bugreport 
> tracker where one can file a bug instead ?
>
>
> Anyway, here's the problem ( manifested in parted 3.2 coming with Ubuntu 
> 18.04 and checked vs. a manual build of the sources from 
> http://ftp.gnu.org/gnu/parted/parted-3.2.tar.xz  ):
>
>
> === parted version ===
>
>
> # parted --version
> parted (GNU parted) 3.2
> Copyright (C) 2014 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
>
> Written by 
> <http://git.debian.org/?p=parted/parted.git;a=blob_plain;f=AUTHORS>.
>
> === print unit s print unit chs print ===
>
>
> # parted /dev/sdi print unit s print unit chs print
> Model: WDC WD30 EZRZ-00Z5HB0 (scsi)
> Disk /dev/sdi: 3001GB
> Sector size (logical/physical): 512B/512B
> Partition Table: gpt
> Disk Flags:
>
> Number  Start  End  Size  File system  Name  Flags
>
> Model: WDC WD30 EZRZ-00Z5HB0 (scsi)
> Disk /dev/sdi: 5860533168s
> Sector size (logical/physical): 512B/512B
> Partition Table: gpt
> Disk Flags:
>
> Number  Start  End  Size  File system  Name  Flags
>
> Model: WDC WD30 EZRZ-00Z5HB0 (scsi)
> Disk /dev/sdi: 364801,80,62
> Sector size (logical/physical): 512B/512B
> BIOS cylinder,head,sector geometry: 364801,255,63.  Each cylinder is 8225kB.
> Partition Table: gpt
> Disk Flags:
>
> Number  Start  End  File system  Name  Flags
>
> === the problem ===
>
>
> # parted /dev/sdi
> GNU Parted 3.2
> Using /dev/sdi
> Welcome to GNU Parted! Type 'help' to view a list of commands.
> (parted) mkpart test1 0% 1T
> (parted) unit B
> (parted) print
> Model: WDC WD30 EZRZ-00Z5HB0 (scsi)
> Disk /dev/sdi: 3000592982016B
> Sector size (logical/physical): 512B/512B
> Partition Table: gpt
> Disk Flags:
>
> Number  Start      End             Size           File system  Name   Flags
>  1      33553920B  1000007477759B  999973923840B               test1
>
> (parted) align-check optimal 1
> 1 aligned
> (parted) align-check minimal 1
> 1 not aligned
> (parted)
>
>
> =====
>
>
> First of all, start sector value looks insanely big for "0%" ; second, one 
> would imagine that passing an optimal check would imply passing a minimal 
> check.
>
>
> If one tries to start at e.g. 1 MiB, then of course the optimal check will 
> not pass :
>
>
> =====
>
> # parted /dev/sdi
> GNU Parted 3.2
> Using /dev/sdi
> Welcome to GNU Parted! Type 'help' to view a list of commands.
> (parted) print
> Model: WDC WD30 EZRZ-00Z5HB0 (scsi)
> Disk /dev/sdi: 3001GB
> Sector size (logical/physical): 512B/512B
> Partition Table: gpt
> Disk Flags:
>
> Number  Start  End  Size  File system  Name  Flags
>
> (parted) mkpart test1 ext2 2048s 1T
> Warning: The resulting partition is not properly aligned for best performance.
> Ignore/Cancel? I
> (parted) unit B
> (parted) print
> Model: WDC WD30 EZRZ-00Z5HB0 (scsi)
> Disk /dev/sdi: 3000592982016B
> Sector size (logical/physical): 512B/512B
> Partition Table: gpt
> Disk Flags:
>
> Number  Start     End             Size           File system  Name   Flags
>  1      1048576B  1000000000511B  999998951936B  ext2         test1
>
> (parted) align-check optimal 1
> 1 not aligned
> (parted) align-check minimal 1
> 1 aligned
>
> =====
>
>
> As it turns out, the root of all evil comes from here :
>
>
> =====
>
> # cat /sys/block/sdi/queue/optimal_io_size
> 33553920
> =====
>
> So parted is not to blame, but the system. But from the user's point of view, 
> it is quite hard to figure this out. And certainly the user deserves to know 
> the actual values that parted considers to be of best performance -- I mean, 
> pa->offset and pa->grain_size from parted.c::print_partition_alignment() 
> shall probably be exposed in some way -- at least when it comes to a warning 
> like the one above.
>
>
>
>
> Kind regards
> Georgy Fedorov
> Senior Systems Specialist
> Melbourne School of Engineering
> The University of Melbourne, Victoria 3010, Australia
> email: address@hidden
> http://www.eng.unimelb.edu.au
>





reply via email to

[Prev in Thread] Current Thread [Next in Thread]