LiveCD + авто-монтирование ФС + LVM2

#!/bin/sh
# Copyright 2005 Michiel Hazelhof
# Copyright 2006 Dmitry Perov

[aka delacrua]
# Distributed under the terms of the GNU General Public License v2

# Все наверное читали статью на wiki по созданию LiveCD,
# так вот, я взял за основу скрипт Michiel Hazelhof, доработал
# и получился вполне рабочий скрипт авто-монтирования
# файловых систем, проверял на своём LiveCD с KDE,
# работает =)

LC=utf8 # кодировка на livecd
Locale=ru_RU.utf8 # локаль на livecd
FAT_CODEPAGE=866 # код с которым монтируют fat разделы с кирилицей

for x in $(fdisk -l | awk '{print $1}' | grep dev | cut -c6-99)
do

TYPE_PART="$(fdisk -l | grep ${x} | awk '{print $7}')"

# если найден NTFS раздел пытаемся смонтировать, предварительно создав каталог назначения
if [[ "$TYPE_PART" == "HPFS/NTFS" ]]
then

mkdir /mnt/${x}
# emerge ntfs-3g - установите драйвер поддерживающий чтение и запись в/из NTFS
mount -t ntfs-3g -o auto,silent,umask=0,no_def_opts,allow_other,locale=$Locale /dev/${x} /mnt/${x}
# mount -t ntfs -o iocharset=$LC,ro,noatime /dev/${x} /mnt/${x}

# записываем параметры раздела и опции монтирования в fstab, извлекая опции с которыми
# раздел смонтирован из файла mtab, кому-то это может показаться неуместным или
# движением влево, и вы будете правы если у вас на LiveCD нет KDE или Gnome

echo "$(cat /etc/mtab | grep /dev/${x})" >> /etc/fstab

# если найден FAT* раздел пытаемся смонтировать, предварительно создав каталог назначения
elif [[ "$TYPE_PART" == "FAT32" || "$TYPE_PART" == "FAT16" ]]
then

mkdir /mnt/${x}
mount -t vfat -o iocharset=$LC,rw,codepage=$FAT_CODEPAGE /dev/${x} /mnt/${x}

echo "$(cat /etc/mtab | grep /dev/${x})" >> /etc/fstab

# emerge lvm2 - установка lvm2
# Пытаемся смонтировать lv-партиции
elif [[ "$TYPE_PART" == "LVM" ]]
then

modprobe dm-mod
vgscan --mknodes
vgchange -a y

# в циклах извлекаем имена групп и партиций LVM, далее создаём
# каталоги монтирования, монтируем и записываем в fstab

for VG in $(vgs --noheadings --nosuffix | awk '{print $1}')
do

for lv in $(lvs --noheadings --nosuffix | awk '{print $1}')
do

mkdir /mnt/$VG-${lv}
mount -t auto -o noatime /dev/$VG/${lv} /mnt/$VG-${lv}
echo "$(cat /etc/mtab | grep /dev/mapper/$VG-${lv})" >> /etc/fstab

done

done

# активируем swap если имеется
elif [[ "$TYPE_PART" == "swap" ]]
then

swapon /dev/${x}
echo "/dev/${x} none swap sw 0 0" >> /etc/fstab

# В других случаях случаях пытаемся смонтировать с авто определением ФС
else
mkdir /mnt/${x}
mount -t auto -o noatime /dev/${x} /mnt/${x}
echo "$(cat /etc/mtab | grep /dev/${x})" >> /etc/fstab

fi

done

# записываем устройства CDROM'ов и floppy в fstab

echo "/dev/hdc /mnt/cdrom iso9660 noauto,ro 0 0" >> /etc/fstab
echo "/dev/hdd /mnt/dvd iso9660 noauto 0 0" >> /etc/fstab
echo "/dev/fd0 /mnt/floppy auto noauto 0 0" >> /etc/fstab

# эта симка позволит эффективно использовать тузлу KFloppy из KDE
ln -sf /dev/floppy/0 /dev/fd0h1440

if [[ ! -d "/mnt/cdrom" ]]; then mkdir /mnt/cdrom; fi
if [[ ! -d "/mnt/dvd" ]]; then mkdir /mnt/dvd; fi
if [[ ! -d "/mnt/floppy" ]]; then mkdir /mnt/floppy; fi

Это вопрос или

Это вопрос или утверждение?
Если утверждение, поместите то же самое с объяснениями на http://ru.gentoo-wiki.com

Я писал

Я писал подобный скрипт. На русской вике он есть. Только этот много сложнее. И некоторые моменты не очень понятны...

так более

так более нормально ?

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".