Как определить размеры с помощью разбиения sgdisk в сценарии bash

Когда вы запускаете задание на переднем плане в интерактивной оболочке, только процессы в этом задании (в соответствующей группе процессов )получают SIGINT (, отправленный ядром, а не оболочкой )после ^C.

Если не запущено какое-либо приоритетное задание, то есть по запросу, когда оболочка ожидает ввода вами командной строки, оболочка находится на переднем плане¹. Таким образом, нажатие ^Cзатем отправит сигнал SIGINT в оболочку, которая обычно будет интерпретироваться как отмена введенного в данный момент текста; он также может убить команду, вызванную как часть ключа или виджета завершения. Вы также можете добавить туда свой собственный обработчик.


Примечания

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

bash -c ': <(sleep 1000); exec bash'

И нажмите Ctrl+C в приглашении этой оболочки bash, вы заметите, что sleepтакже будет уничтожен.

Вы бы этого не заметили при sleepтаком запуске:

sh -c 'sleep 1000 & exec bash'

как shв этом случае явно игнорирует SIGINT для асинхронной команды sleep(устанавливает расположение SIGINT в SIGIGN перед выполнениемsleep).

0
11.11.2019, 08:27
1 ответ

Следующее будет работать:

sgdisk --clear /dev/vda --set-alignment=1 --new 1:34:2047 --typecode 1:EF02 -c 1:"grub"  -g /dev/vda
sgdisk --new 2:0:-2G --typecode 2:8300 -g /dev/vda
sgdisk --new 3:0:0 --typecode 3:8200 -g /dev/vda

Это намного проще, чем я думал. sgdiskделает все расчеты. Ключом является знак минус, который объясняется на справочной странице (, которую я пропустил ранее ).

You can specify locations relative to the start or end of the specified default range by preceding the number by a '+' or '-' symbol, as in +2G to specify a point 2GiB after the default start sector, or -200M to specify a point 200MiB before the last available sector. A start or end value of 0 specifies the default value,

0
28.01.2020, 03:07

Теги

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