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 <gfedo...@unimelb.edu.au> 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: gfedo...@unimelb.edu.au > http://www.eng.unimelb.edu.au >