Проверьте, не был ли контейнер LUKS усечен

parallel запускает оболочку (какая именно зависит от контекста, в котором она вызывается, как правило, при вызове из оболочки это одна и та же оболочка) для анализа объединения аргументов.

Итак:

parallel debug-call 'a b' {} ::: 'a b' c

совпадает с

parallel 'debug-call a b {}' ::: 'a b' c

parallel будет вызывать:

your-shell -c 'debug-call a b '

Где — это аргументы (надеюсь), правильно указанные для этой оболочки. Например, если это оболочка bash, она будет работать

bash -c 'debug-call a b a\ b'

Здесь вы хотите:

parallel 'debug-call "a b" {}' ::: 'a b' c

Или

parallel -q debug-call 'a b' {} ::: 'a b' c

Где parallel будет цитировать аргументы (в правильном ( надеюсь) синтаксис для оболочки) перед объединением.

Чтобы избежать вызова оболочки в первую очередь, вы можете вместо этого использовать GNU xargs:

xargs -n1 -r0 -P4 -a <(printf '%s\0' 'a b' c) debug-call 'a b'

Это не вызовет оболочку (и ни одну из многих команд, запускаемых parallel при инициализации), но вы не сможете воспользоваться какими-либо дополнительными функциями parallel, такими как изменение порядка вывода с помощью -k.

Вы можете найти другие подходы в Фоновое выполнение в параллельном режиме

1
10.11.2016, 11:25
1 ответ

Это невозможно, поскольку LUKS / dm-crypt / cryptsetup страница часто задаваемых вопросов говорит :

2.15 Могу ли я изменить размер раздела dm-crypt или LUKS?

Да, можно, поскольку ни dm-crypt, ни LUKS не хранят размер раздела.

Если информация о размере не сохранена, то невозможно проверить, доступна ли вся информация.

Я спросил, что изменяется, если информация о размере не сохраняется здесь .

0
28.01.2020, 01:07

Теги

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