Как создать раздел с GNU Parted точно в конце предыдущего раздела?

POSIXly:

while [ "$#" -gt 1 ]; do
  shift
done

printf '%s\n' "$1"

(Этот подход также работает в старом Bourne shell)

С другими стандартными инструментами:

awk 'BEGIN{print ARGV[ARGC-1]}' "$@"

(Это не будет работать со старым awk, который не имел ARGV)

1
27.12.2018, 16:38
1 ответ

С помощью partedиспользуйте print free, чтобы увидеть все свободные сегменты или промежутки в вашем разделе, как начало/конец/размер, которые вы можете использовать в своих последующих командах mkpart.

(parted) unit mib # or s, b, whatever you prefer
(parted) print free                          
Model:  (file)
Disk /dev/shm/foobar.img: 7629395MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start       End         Size        File system  Name  Flags
        0.02MiB     1.00MiB     0.98MiB     Free Space
 1      1.00MiB     953674MiB   953673MiB                root
        953674MiB   2861023MiB  1907349MiB  Free Space
 3      2861023MiB  7629394MiB  4768371MiB               data
        7629394MiB  7629395MiB  0.52MiB     Free Space

Таким образом, в этом примере имеется свободное место 953674МиБ -2861023МиБ.

Создайте раздел, и он должен быть правильно заполнен.

(parted) mkpart home 953674MiB 2861023MiB
(parted) print free
Model:  (file)
Disk /dev/shm/foobar.img: 7629395MiB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start       End         Size        File system  Name  Flags
        0.02MiB     1.00MiB     0.98MiB     Free Space
 1      1.00MiB     953674MiB   953673MiB                root
 2      953674MiB   2861023MiB  1907349MiB               home
 3      2861023MiB  7629394MiB  4768371MiB               data
        7629394MiB  7629395MiB  0.52MiB     Free Space

with proper alignment taken into account?

Как уже говорилось в комментариях, выравнивание зависит от правильного конечного сектора предыдущего раздела. Лучше вручную проверить правильность выравнивания MiB.

Если раздел имеет неправильный размер, обычно (, но не всегда )можно соответственно увеличить конечный сектор предыдущего раздела с помощью команды resizepart. Оставлять промежутки в разбиении никоим образом не вредно, так что не беспокойтесь об этом слишком сильно.

4
27.01.2020, 23:31

Теги

Похожие вопросы