LVM — перемещение ./home ./var ./srv в тот же раздел

Рассмотрение некоторых других вопросов привело меня к небольшому скрипту, который решает проблему:

#!/bin/bash

shopt -s globstar
for f in **/*.php; do
  cloc --strip-comments=BAK --original-dir "${f%.*}.php"
  mv "${f%.*}.php.BAK" "${f%.*}.php"
done

Это, несомненно, можно оптимизировать дальше.

0
13.01.2020, 12:41
1 ответ

Хотя это можно сделать, скопировав эти каталоги в/home(с помощьюmv)и создав символические ссылки (с помощью ln -s), это не очень хорошая идея.

Симлинкирование каталогов верхнего -уровня, которые не предназначены для использования в качестве символических ссылок, обычно приводит к трудным проблемам отладки -–-, поскольку многие приложения не ожидают такого поведения. Например, если приложение использует O_NOFOLLOWиз соображений безопасности при открытии файла, то это приложение не будет работать при создании символических ссылок. Я видел множество ситуаций, когда это происходило, и сопровождающие дистрибутивов (, не говоря уже об авторах программного обеспечения ), как правило, не сочувствуют проблемам, возникающим в этом сценарии, поскольку он не поддерживается.

В общем, было бы лучше либо иметь /, /home, /var, /tmpи /srvна одном разделе и сделать его расширяемым с помощью LVM, либо создать отдельные разделы для вещи, которые вам нужны отдельно.

Если вы уже используете LVM и хотите создать дополнительные логические тома как часть той же группы томов, которую вы уже используете, вы можете найти группу томов с помощью sudo vgdisplay -c | cut -b3- | cut -d: -f1, а затем создать дополнительные логические тома следующим образом:

SIZE=100m # for example
DIRNAME=/srv # for example
VOLGROUP=$(sudo vgdisplay -c | cut -b3- | cut -d: -f1)
sudo lvcreate -L $SIZE -n $(basename "$DIRNAME") $VOLGROUP
sudo mkfs.ext4 /dev/mapper/$VOLGROUP-$(basename "$DIRNAME")
sudo mount /dev/mapper/$VOLGROUP-$(basename "$DIRNAME") /mnt
sudo cp -a $DIRNAME/* $DIRNAME/.* /mnt
sudo umount /mnt
# Add the new /dev/mapper/$VOLGROUP-$DIRNAME device pointing to
# $DIRNAME to /etc/fstab

Вы должны сделать это в однопользовательском режиме, а затем перезагрузиться.

0
28.01.2020, 02:56

Теги

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