Зашифрованный раздел сообщает о неправильном размере

То, что ((i=1;i<=3;i=i+1))является синтаксисом ksh93 (, теперь также поддерживается bashи zsh(, хотя вам нужны пробелы между forи ((вzsh)).

В ksh93и последних версияхbash(4.3, 2014 или выше )вы можете сделать:

a1="one"
a2="two"
a3="three"
for ((i=1;i<=3;i=i+1));do
    typeset -n name="a$i"
    printf '%s\n' "$name"
done 

В zshвы можете использовать синтаксис косвенной переменной:${(e)code}(с мая 1996 г. ),${(P)name}(с 1999 г.)

a1="one"
a2="two"
a3="three"
for ((i=1;i<=3;i=i+1));do
    name=a$i
    printf '%s\n' "${(P)name}"
    # or
    code="\$a$i"
    printf '%s\n' "${(e)code}"
    # or combined:
    printf '%s\n' "${(e):-\$a$i}" "${(P)${:-a$i}}"
done 

bashтакже добавил свою собственную функцию косвенного обращения к переменной, но с использованием другого синтаксиса (в версии 2.0 в декабре 1996 года ), который означает почти противоположное тому, что используется в ksh93 :

.
a1="one"
a2="two"
a3="three"
for ((i=1;i<=3;i=i+1));do
    name=a$i
    printf '%s\n' "${!name}"
done 

В любой оболочке POSIX, (включая, помимо прочего, ksh93, bash или zsh ), вы всегда можете:

a1="one"
a2="two"
a3="three"
i=1; while [ "$i" -le 3 ]; do
    name=a$i
    eval "value=\${$name}"
    printf '%s\n' "$value"
    i=$((i + 1))
done 
0
09.09.2020, 22:39
1 ответ

Ваш большой раздел диска /dev/nvme0n1p3содержит зашифрованный контейнер LUKS /dev/mapper/nvme0n1p3_crypt.

Предположительно, это, в свою очередь, содержит группу томов с именем ubuntu-vg, и вы можете подтвердить это с помощью pvs. Причина этого предположения заключается в том, что вы показали нам два логических тома с именами rootи swap, принадлежащие VG с именем ubuntu-vg.

Странно то, что размер корневого LV составляет около 840 ГиБ, но он содержит только файловую систему размером около 98 ГБ.

Обычно нет особого смысла создавать LV, который намного больше, чем содержащаяся в нем файловая система, и я бы рекомендовал уменьшить его до 120 ГБ или около того. Это позволит вам вырастить его снова по мере необходимости или даже создать новый LV, если он вам понадобится.

Вам не нужно сжимать LV, но вот как это сделать. В общем, НЕ СЖИМАЙТЕ ЛОГИЧЕСКИЙ ТОМ, если файловая система, которую он содержит, уже не достаточно мала, чтобы соответствовать целевому размеру. Сделайте это неправильно, и вы уничтожите свою файловую систему.

Сделайте резервную копию ваших файлов, прежде чем пытаться это сделать. Одолжите диск, если нужно, но сделайте резервную копию. Действительно.

В вашем случае файловая система составляет всего 98 ГБ, поэтому мы можем безопасно уменьшить LV до 120 ГБ. (Это легко допускает неправильное преобразование между ГБ и ГиБ. )В то же время мы увеличиваем размер файловой системы, чтобы соответствовать.

lvresize --size 120G --resizefs /dev/mapper/ubuntu--vg-root

После этого вы можете постепенно увеличивать размер файловой системы, например, до 200 ГБ

lvresize --size 200G --resizefs /dev/mapper/ubuntu--vg-root

Если вы действительно не хотите изменять размер корневого контейнера LV объемом 840 ГБ, вы можете просто и безопасно изменить размер файловой системы внутри него. Это увеличивает его размер до 120 ГБ

.
resize2fs /dev/mapper/ubuntu--vg-root 120GB

Опустите размер, чтобы файловая система полностью заполнила LV (все его 840 ГБ ). Я не рекомендую это, однако.

0
18.03.2021, 23:05

Теги

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