1

У меня есть Live CD, который я создаю, чтобы получить доступ ко всем физически подключенным дискам на машине. Вмешательство пользователя не требуется, и мне нужно найти и смонтировать все диски, которые можно установить. Мне также нужно иметь возможность обрабатывать, если диск или диски используют LVM или нет, и монтировать каждую группу томов.

2 ответа2

1

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

Здесь я сканирую все разделы в /proc/partitions и пытаюсь смонтировать каждый найденный раздел. Разделы LVM будут перечислены в этом файле также после их сканирования и активации.

# Scan for all volume groups
lvscan
# Activate all volume groups
vgchange -a y

# Get all partitions (-n+3 skips first 3 lines since they do not contain partitions)
# Also skip partitions that are loop devices which is actually the ISO cd itself
all_partitions=$(tail -n+3 /proc/partitions | awk '{print $4}' | grep -v loop)

# Array of failed mounts
declare -a failed_mounts=()

# Mount each partition to /mnt/{partition name}
for partition in ${all_partitions}; do
    mountdir=/mnt/${partition}
    mkdir -p ${mountdir}
    mount /dev/${partition} ${mountdir} &>>${INIT_LOG}
    if [ $? -ne 0 ]; then
        echo "Failed to mount ${partition}"
        rm -rf ${mountdir}
        failed_mounts+=(${partition})
    fi
done

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

0

Только часть LVM

Сначала активируйте все группы томов:

vgchange -a y

затем

lvdisplay -c | sed -e 's/  //; s/:.*//'

должен дать вам список активированных томов LVM. Они должны иметь форму /dev/VGNAME/LVNAME , теперь вы можете использовать это для создания точек монтирования по вашему желанию.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .