Как взять аргументы команды из файла, по одному на строку?

Во-первых, вам придется отредактировать таблицу разделов, чтобы расширить раздел sdb3. Для этого вы можете использовать gparted, parted, gdiskили fdisk.

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

Если ядро ​​не сразу принимает новый размер раздела, вам, возможно, придется запустить sudo partprobe /dev/sdbна этом этапе.

Как только новый размер раздела будет виден в /proc/partitions, вы можете продолжить с sudo pvresize /dev/sdb3точно так же, как и раньше. После этого sudo pvdisplayдолжно указывать увеличенные значения PV size, Total PEи Free PE.

В этот момент вы можете использовать sudo lvextend -r -L <desired new size> /dev/cl/root, чтобы расширить свой LV.

Так как sdb3PV уже является членом группы томов cl, вам не нужно vgextendв этом случае :оно используется только при добавлении нового, неиспользуемого PV в группу томов. существующая группа томов. Поскольку в настоящее время виртуальная группа активна и все ее LV смонтированы/используются, PV заблокирован для монопольного доступа со стороны LVM, поэтому даже инструмент vgextendне может получить к нему прямой доступ. Если вы попытаетесь выполнить vgextend, загрузившись с внешнего носителя, чтобы размонтировать LV, вы увидите сообщение об ошибке

Physical volume '/dev/sdb3' is already in volume group 'cl'

вместо этого.

0
05.05.2021, 03:40
1 ответ

Вот что я написал. Это работает, но это своего рода не -ответ, так как я надеялся сделать это без написания внешнего интерфейса.

#!/usr/bin/env python3

usage = """
Read arguments from a file, one per line, then execute the given
command.

usage:      lineargs <filename> <cmd> [args]
"""

import os
import sys

argfilename = sys.argv[1]        # Get arguments from this file, one per line
cmd = sys.argv[2:]               # The command and additional arguments

args = open(argfilename, "r").read().splitlines()

cmd.extend(args)
os.execvp(cmd[0], cmd)

Я не стал заморачиваться с проверкой ошибок и т.д. Это всего лишь один -нестандартный сценарий.

0
28.07.2021, 11:34

Теги

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