Dear Sam,
On 09/10/2011 12:09 AM, Sam Tygier wrote:
> I am having trouble at the partitioning stage of install.sh, the partitions
> are not created the size I ask for. I have tried
> variouscombinations of the env vars, and command line args.
>
> # TASKS="ALL" QI=true ./install.sh --part1-size 4000 --swap-size 256
> partition
> gives:
>
> Disk /dev/mmcblk0: 8166 MB, 8166309888 bytes
> 4 heads, 16 sectors/track, 249216 cylinders, total 15949824 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: 0x2940d389
> Device Boot Start End Blocks Id System
> /dev/mmcblk0p1 2048 241404 119678+ 83 Linux
> /dev/mmcblk0p2 241405 15949823 7854209+ 82 Linux swap /
> Solaris
>
> a ~100 MB /dev/mmcblk0p1 and 7GB /dev/mmcblk0p2 for swap.
>
> install.sh calculates the size of the first partition in cyclinders, by
> subtracting the size of swap. It then uses the sizes in
> cylinders to create the partitions.
>
> SHR has fdisk (util-linux-ng 2.18), which defaults to working in sectors. so
> fdisk asks for sectors, and install.sh replies in
> cylinders.
>
> the quick fix on SHR seems to be to call fdisk with "fdisk /dev/mmcblk0
> -u=cylinders", but this will probably give an error if you
> do it on other fdisks. I could make a patch to to try to detect which fdisk
> is being used, and conditionally add the flag.
>
> it looks like in the future fdisk will use sectors, so the real solution is
> probably do the calculations in sectors. The "-u"
> should make sure any fdisk version uses sectors.
I recall many contributions from many sides to that part of install.sh. A
varying behaviour of fdisk indeed explains a lot to me.
This is why my desktop's fdisk (GNU Fdisk 1.2.4) gives me:
-u, --sector-units
use sectors, instead of cylinders for a default unit.
-C, --cylinders=CYLINDERS
Specify the number of cylinders of the disk. Currently does
nothing, it is left for Linux fdisk compatibility.
So this is somewhat different, -u does not need any extra options, -C means
something different. This sniplet works for me
b=`/sbin/fdisk --version`
fdiskFlags=""
if echo $b|grep -q ^GNU; then
echo "I am a GNU: $b"
#fdiskFlags="-u" # sectors
fdiskFlags="" # cylinders
else
echo "Who am I, util-linux-ng maybe?"
fdiskFlags="" # sectors
fdiskFlags="-u=cylinders" # cylinders
fi
echo "The flags to use are: $fdiskFlags"
I think we should prefer an explicit failure over an unsupported fdisk option
over presuming any default unit. If it is not too
cumbersome, could you please prepare a patch that works for you and introduces
the explicit unit setting through some extra magic
like outlined above? This would be great.
Many thanks and regards,
Steffen
_______________________________________________
pkg-fso-maint mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-fso-maint