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
Я писал
Я писал подобный скрипт. На русской вике он есть. Только этот много сложнее. И некоторые моменты не очень понятны...
так более
так более нормально ?