parted
peut imprimer de l'espace libre. Exemple (j'en ai choisi un compliqué exprès):
# parted /dev/sda unit s print free
[...]
Number Start End Size Type File system Flags
63s 2047s 1985s Free Space
1 2048s 4196351s 4194304s primary fat32 lba
4196352s 4198399s 2048s Free Space
2 4198400s 6295551s 2097152s primary ext2 boot
6295552s 6297599s 2048s Free Space
3 6297600s 27269119s 20971520s primary ext2
27269120s 27271167s 2048s Free Space
4 27271168s 31115263s 3844096s extended lba
5 27273216s 29192191s 1918976s logical ext2
6 29194240s 31115263s 1921024s logical ext2
31115264s 31116287s 1024s Free Space
Comme vous pouvez le voir, cela vous donne directement la position et la taille de la partition que vous pouvez créer, c'est-à-dire la toute dernière ligne qui dit Free Space
. Vous pouvez créer une partition qui commence à 31115264s et se termine à 31116287s.
Sans le piège, la partition étendue n'est pas assez grande!
Mais peut-être que vous utilisez déjà le GPT où vous ne souffrez pas de telles complications.
Saisir les chiffres devrait être assez facile.
function make_partition
{
parted -s "$1" unit s mkpart primary "$2" "$3"
}
make_partition /dev/sda `parted /dev/sda unit s print free | grep 'Free Space' | tail -n 1`
Ou quelque chose de similaire. (Naturellement, vous voudriez faire d'autres vérifications de santé mentale ici.)
@swisscheese a fait un bon commentaire dans l'autre réponse, je ne savais pas qu'il parted
offrait une sortie conviviale pour l'analyse. Vous pouvez choisir de l'utiliser à la place. Exemple pour saisir le dernier plus grand gratuit:
# parted -m /dev/sda unit s print free | grep 'free;' | sort -t : -k 4n -k 2n | tail -n 1
1:27269120s:27271167s:2048s:free;
Que ce soit applicable à votre situation (dans mon exemple, vous ne pouvez pas créer une partition là-bas non plus, elle est déjà vraiment pleine) est quelque chose que vous devez déterminer par vous-même. :)