ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Чужие Статьи
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Руководство для начинающих по созданию Live CD из LFS 6.0
  #1  
Старый 13.03.2007, 14:30
Аватар для system_32
system_32
Участник форума
Регистрация: 06.07.2006
Сообщений: 202
Провел на форуме:
962974

Репутация: 245
Отправить сообщение для system_32 с помощью ICQ
По умолчанию Руководство для начинающих по созданию Live CD из LFS 6.0

АВТОР: Mike Hernandez
ПЕРЕВОД: Сергей Каминский
ДАТА: 2005-09-03
ЛИЦЕНЗИЯ: GNU Free Documentation License Version 1.2

КОНСПЕКТИВНО: Руководство для начинающих по созданию Live CD из LFS 6.0

АЛЬТЕРНАТИВНОЕ РАСПОЛОЖЕНИЕ: Более свежую версию этого совета вы можете найти на http://www.culmination.org/Mike/2.6-udev-nptl-bootcd.txt

ОПИСАНИЕ:


Этот совет детально описывает, как я сделал Live CD из собранной системы LFS 6.0. Читатель может следовать этому совету для создания своего собственного Live CD. Этот совет был адаптирован из "Простого" совета для работы с LFS 6.0. Это моя попытка сделать его как можно проще для тех, кто создает Live CD впервые.

ТРЕБОВАНИЯ:
1. Рабочая LFS система (и cdrtools, если вы хотите записывать cd)
2. LFS система, созданная для создаваемого Live CD (смотрите ниже)
3. CD Writer + Media
4. Syslinux (http://freshmeat.net/projects/syslinux/)


Перед началом, позвольте мне сделать небольшое вступление. Я назвал этот раздел: Что это и для чего

ЧТО ЭТО


Это совет по созданию простого Live CD. Для большей точности: После загрузки с CD пользователь попадает в приглашение linux.

Если вы собираете его из системы LFS (без компонентов BLFS), то CD будет полезен для восстановления поврежденной LFS системы.

Создание Live CD может быть интересным, а знание того, как это сделать, открывает двери к большим возможностям. Этот совет является хорошей отправной точкой для воплощения идеи о "полном спасательном CD".

ДЛЯ ЧЕГО

Как я сказал выше, это поможет вам сделать простой Live CD. Пользователь попадет в приглашение linux и ничего кроме этого, если вы сами не добавите функциональности.

Этот совет не описывает размещение на CD тонн программ, которые вы можете обнаружить на knoppix или официальном LFS загружаемых CD.

Этот совет не описывает создание программы установки для копирования содержимого CD на жесткий диск.

Так же вы не найдете здесь информацию о кросс-компилировании, поэтому если вы хотите, чтобы ваш CD загружался на архитектуре, полностью отличной от вашей, то вы должны иследовать этот вопрос самомтоятельно.

ПОЧЕМУ ОН ИМЕННО ТАКОЙ

Этот совет создан для помощи тем, кто создает Live CD впервые. Я пытался сделать его как можно проще, поэтому он не будет требовать для выполнения слишком глубокого понимания LFS (совет, на котором он основывается, назывался "Простой совет по созданию загрузочного CD"). Конечно, вам надо иметь некоторые знания, но знания эксперта не требуются. Создание установочного CD, или использование таких файловых систем, как squashfs, для начинающих может потребовать больше информации и попытка включения всего этого может сделать этот совет больше беспорядочным, чем полезным.

НАЧАЛО

Этот совет, как и совет на котором он основан, требует, чтобы у читателя были собраны две системы. Одна система - это ваша обычная рабочая система, которую вы будете использовать для записи CD после его подготовки. Вторая - это система, созданная специально для размещения ее на Live CD. Если вы хотите загружать CD только на машине, на которй его создали, то просто сделайте копию вашей LFS системы на другом разделе.

Вы можете удивиться, зачем вам нужны две системы для создания Live CD. Реально смысл очень простой. Если вы как я, то вы оптимизируете вашу LFS систему для вашего РС (или в моем случае лаптопа). У меня система на базе Pentium 4, поэтому все программы, поддерживающие оптимизацию, были собраны с:

CFLAGS='-march=pentium4'

И в чем проблема? Она в том, что я хочу, чтобы мой Live CD запускался везде, где поддерживается загрузка с CD! Программі в моей текущей системе не запустятся на машине, которая не pentium 4. Во время сборки я использую на много больше оптимизаций, но здесь я упоминаю архитектуру, поскольку это подводит к важной точке:
ЗНАЙТЕ ЗАРАНЕЕ, НА КАКОМ ОБОРУДОВАНИИ ВЫ ХОТИТЕ ЗАГРУЖАТЬ CD!


Перед началом вы должны решить, что должен делать ваш Live CD. Вы можете захотеть рассмотреть возможность оптимизировать все в вашей Live CD системе по объему или для особого типа машины или не оптимизировать вообще. Что лучше - решать вам.

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

НАСТРОЙКА ОКРУЖЕНИЯ


Чтобы сделать работу проще, вы должны установить переменную LIVECD с указанием на точку монтирования системы, которую вы будете использовать для CD:

export LIVECD=/mnt/livecd

Вы так же можете захотеть установить переменную CDDEV:

export CDDEV=/dev/ваше-устройство+раздел

Установите ISODIR на точку, где вы захотите держать образ:

export ISODIR=/где/у_вас/есть/место

НАСТРОЙКА Live CD СИСТЕМЫ


Теперь, когда все окружение установлено, настало время сделать некоторые окончательные настройки для Live CD системы. Это включает сборку ядра так, как вы хотите, и, возможно, добавление некоторых программ на ваше усмотрение.

Если вы абсолютно уверены, что ядро для вашей CD системы будет работать в системе, которую вы размещаете на CD, и вам не надо устанавливать любые другие программы для вашего CD, то вы можете перейти к разделу "Действия вокруг содержимого".

Перед тем, как мы сможем настроить и установить новое ядро для Live CD, мы войдем в систему в chroot окружении:

1. Подмонтируем вашу Live CD систему:

mkdir -p $LIVECD
mount $CDDEV $LIVECD

2. Согласно директивам книги LFS-6.0, подмонтируем виртуальные файловые системы перед входом в chroot:

mount -t proc proc $LIVECD/proc
mount -t sysfs sysfs $LIVECD/sys
mount -f -t ramfs ramfs $LIVECD/dev
mount -f -t tmpfs tmpfs $LIVECD/dev/shm
mount -f -t devpts -o gid=4,mode=620 devpts $LIVECD/dev/pts

3. Выполняем chroot в Live CD систему при помощи команды, указанной в конце главы 6 (НЕ КОМАНДЫ CHROOT В НАЧАЛЕ!!!).

chroot $LIVECD /usr/bin/env -i \\
HOME=/root TERM=$TERM PS1='\\u:\\w\\$ ' \\
PATH=/bin:/usr/bin:/sbin:/usr/sbin \\
/bin/bash --login

4. Монтируем ramfs и заполняем /dev

mount -n -t ramfs none /dev
/sbin/udevstart

5. Создаем необходимые символические ссылки и директории, не созданные udev:

ln -s /proc/self/fd /dev/fd
ln -s /proc/self/fd/0 /dev/stdin
ln -s /proc/self/fd/1 /dev/stdout
ln -s /proc/self/fd/2 /dev/stderr
ln -s /proc/kcore /dev/core
mkdir /dev/pts
mkdir /dev/shm

6. Выполняем монтирование виртуальных файловых систем (ядра):

mount -t devpts -o gid=4,mode=620 none /dev/pts
mount -t tmpfs none /dev/shm

Теперь вы в chroot, поэтому вы можете настроить и собрать ядро для CD. Если вы абсолютно уверены, что ядро для вашей CD системы будет работать в системе, которую вы размещаете на CD, то вы можете пропустить эту часть и просто устанавливать необходимые программы.

Сборка ядра для вашего Live CD не является чем-то, что легко только для ветерана! Есть такие опции, которые должны быть встроенными, и такие, которые должны быть выполнены в виде модулей. Я подразумеваю, что если вы чувствуете, что готовы к созданию Live CD вне вашей системы, то вы знаете, что делаете. Я предлагаю не использовать модули, так как это может создать проблемы если вы хорошо не знаете всего, что обеспечивает работу при использовании модулей с ядром 2.6 и udev. Будьте осторожны! =)

После установки вашего ядра вы можете захотеть проверить его работоспособность. Как только вы все установите, вы должны покинуть chroot и выполнять все остальные команды из вашей рабочей системы как root.

ДЕЙСТВИЯ ВОКРУГ СОДЕРЖИМОГО


A.K.A. Перемещение /dev /etc /home /root /tmp /var в /fake/needwrite

Когда я следовал "Простому" совету, я пришел к этому месту и воскликнул: Что такое /fake/needwrite? (реально это было больше похоже на "что черт возьми такое /fake/needwrite stuff?") Здесь находится ответ для тех из вас, кто сказал то же самое:

Директория /fake/needwrite используется для содержания файлов, которые должны быть записываемыми во время запуска Live CD. Обычно эти файлы не могут оставаться на CD-ROM, а поэтому они перемещаются в место, из которого они будут скопированы в электронный диск во время процесса загрузки CD. Нахождение файлов в электронном диске позволяет нам их изменять. Так же мы можем создавать файлы в директориях, расположеных в электронном диске, например в /tmp или /home.

Сначала мы должны создать директорию и точку монтирования для электронного диска:

* ЗАМЕЧАНИЕ: Если ваша CD система не подмонтирована, то выполните сейчас:
* mount $CDDEV $LIVECD
* благодарю Bernard за указание на это

mkdir -p $LIVECD/fake/{needwrite,ramdisk}

Теперь мы можем переместить сюда директории, для которых хотим сохранить доступ на запись:

cd $LIVECD/
mv dev/ etc/ home/ root/ tmp/ var/ fake/needwrite/

Теперь мы должны создать символические ссылки.

cd $LIVECD/
ln -s fake/needwrite/dev dev
ln -s fake/needwrite/var var
ln -s fake/needwrite/tmp tmp
ln -s fake/needwrite/root root
ln -s fake/needwrite/home home
ln -s fake/needwrite/etc etc

В этом месте выполните ls -l. Вывод должен быть таким:

dev -> fake/needwrite/dev
etc -> fake/needwrite/etc
home -> fake/needwrite/home
root -> fake/needwrite/root
tmp -> fake/needwrite/tmp
var -> fake/needwrite/var

СОЗДАНИЕ ПРОЦЕССА ЗАГРУЗКИ CD ПО НАШИМ ТРЕБОВАНИЯМ


Ok, у нас есть директории /etc /dev /var /tmp /root /home, слинкованные в директорию /fake/needwrite, которая установлена только для чтения (так как она на CD). Для возможности регистрации (и для запуска сервисов, требующих доступ на запись в /dev /var /tmp /root /home или /etc) мы должны вызвать скрипт из нашей директории /etc/rc.d/init.d/, который монтирует электронный диск на /fake/needwrite с доступом на запись.

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

Оригинальный совет использовал один электронный диск, но это привело меня к большим проблемам. Во-первых, initrd, который загружается во время запуска, использует первый электронный диск (/dev/ram0). Следовательно, попытка примонтировать /dev/ram0 в другое место приведет к ошибке "устройство уже примонтировано". Во-вторых, отмонтирование электронного диска приводит к потере всех файлов. Оригинальный совет отмонтировал электронный диск и перемонтировал его, выполняя файлы, все еще находящиеся там. Что не работало у меня, вот почему я сделал так, что /dev/ram{0,1,2} есть всегда и рекомендую, чтобы вы делали так же. Если они отсутствуют, вы должны проверить установки вашего udev. Вы можете попробовать использовать mknod для создания этих фалов, но с этого момента я скажу, что если у вас нет устройств /dev/ram, то вы должны провести некоторые собственные исследования для поиска причин.

* Bernard для выполнения этого предложил цикл for, который вы можете попробовать:
* for i in 0 1 2 3 4 5 6 7; do
* mknod $LIVECD/dev/ram$i b 1 $i;
* done

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

cat > $LIVECD/etc/rc.d/init.d/create_ramdisk << "EOF"
#!/bin/sh

# УСТАНОВКА НЕКОТОРЫХ ПЕРЕМЕННЫХ ДЛЯ УСТРОЙСТВ И ДИРЕКТОРИЙ

dev_ram=/dev/ram1
dev_ram2=/dev/ram2
dir_ramdisk=/fake/ramdisk
dir_needwrite=/fake/needwrite

# УКАЗАНИЕ ФАЙЛА ФУНКЦИЙ

source /etc/rc.d/init.d/functions

case "$1" in
start)

# СОЗДАНИЕ ЭЛЕКТРОННОГО ДИСКА

echo "Creating ext2fs on $dev_ram..."
/sbin/mke2fs -m 0 -i 1024 -q $dev_ram > /dev/null 2>&1
evaluate_retval
sleep 1

# МОНТИРОВАНИЕ ЭЛЕКТРОННОГО ДИСКА

echo "Mounting ramdisk on $dir_ramdisk..."
mount -n $dev_ram $dir_ramdisk -t ext2
evaluate_retval
sleep 1

# КОПИРОВАНИЕ ФАЙЛОВ В ЭЛЕКТРОННЫЙ ДИСК

echo "Copying files to ramdisk..."
cp -a $dir_needwrite/* $dir_ramdisk > /dev/null 2>&1
evaluate_retval
sleep 1

# СОЗДАНИЕ ВТОРОГО ЭЛЕКТРОННОГО ДИСКА

echo "Creating second ramdisk"
/sbin/mke2fs -m 0 -i 1024 -q $dev_ram2 > /dev/null 2>&1
evaluate_retval
sleep 1

# МОНТИРОВАНИЕ ВТОРОГО ЭЛЕКТРОННОГО ДИСКА

echo "Mounting second ram disk"
mount -n $dev_ram2 $dir_needwrite -t ext2
evaluate_retval
sleep 1

# КОПИРОВАНИЕ ФАЙЛОВ ВО ВТОРОЙ ЭЛЕКТРОННЫЙ ДИСК

echo "Copying files to the second ram disk"
cp -a $dir_ramdisk/* $dir_needwrite
evaluate_retval
sleep 1

# ОТМОНТИРОВАНИЕ ПЕРВОГО ЭЛЕКТРОННОГО ДИСКА

echo "Unmounting and clearing first ram disk"
umount -n $dir_ramdisk > /dev/null 2>&1
blockdev --flushbufs /dev/ram1
evaluate_retval
sleep 1
;;
*)
echo "Usage: $0 {start}"
exit 1
;;
esac

EOF

Сделаем скрипт исполняемым при помощи следующей команды:

chmod 0755 $LIVECD/etc/rc.d/init.d/create_ramdisk

Gabe Munoz указал, что эта символическая ссылка может быть S11 там, где она используется как S00. Конечно, вы можете свободно выбирать номер ссылки (это ведь LFS !). Просто убедитесь, что вы не запускаете другие скрипты, которые попытаются записать в одну из директорий, которые требуют права записи перед перезаписью файлов.

cd $LIVECD/etc/rc.d/rcsysinit.d
ln -s ../init.d/create_ramdisk S00create_ramdisk

Затем мы должны установить загрузчик, isolinux. Он доступен в пакете syslinux. Вы можете найти syslinux на freshmeat:

http://freshmeat.net/projects/syslinux/

Указания ниже подразумевают, что тарбол syslinux-2.11.tar.bz2 уже размещен в $LIVECD/usr/src. (используйте текущую версию, 2.11 может быть уже устаревшей).

cd $LIVECD/usr/src
tar xzf syslinux-2.11.tar.gz
mkdir $LIVECD/isolinux
cp syslinux-2.11/isolinux.bin $LIVECD/isolinux

mv $LIVECD/boot/* $LIVECD/isolinux
cd $LIVECD/
rmdir boot
ln -s isolinux boot

Для загрузчика нужен файл конфигурации. Команда cat ниже создает этот файл.

* Замечание: Будьте осторожны с именем вашего ядра!
* Просмотрите http://syslinux.zytor.com/errors.php
* Используйте простые и понятные имена.

cat > $LIVECD/isolinux/isolinux.cfg << "EOF"
default livecd

label livecd
kernel lfskernel
append initrd=initrd.gz root=/dev/ram0 init=/linuxrc ramdisk_size=16384
EOF

На этом этапе можно изменить /etc/fstab Live CD системы. Удалите все, что вам не нужно (т.е. все строчки /dev/hd*). Вам нужны только proc и devpts.

vi $LIVECD/etc/fstab

Не беспокойтесь о монтировании корневой файловой системы "/". Она будет монтироваться скриптом linuxrc из начального электронного диска.

Вам может пригодится удаление следующих ссылок:

rm $LIVECD/etc/rc.d/rc3.d/S20network
rm $LIVECD/etc/rc.d/rc0.d/K80network
rm $LIVECD/etc/rc.d/rc6.d/K80network
rm $LIVECD/etc/rc.d/rcsysinit.d/S40mountfs
rm $LIVECD/etc/rc.d/rcsysinit.d/S30checkfs

Ok! Так далеко и все хорошо и правильно?! Для обеспечения работы процессов загрузки мы создадим начальный электронный диск. Больше информации о начальном электронном диске (для краткости initrd) может быть найдено в документации вашего ядра.

Инструкции ниже создают initrd:

dd if=/dev/zero of=$LIVECD/boot/initrd bs=1024 count=6144
mke2fs -m 0 -i 1024 -F $LIVECD/boot/initrd

mount -o loop $LIVECD/boot/initrd $LIVECD/mnt
cd $LIVECD/mnt
mkdir bin sbin lib dev proc mnt sys etc

cp -a $LIVECD/bin/{bash,mount,grep,umount,echo,ln,mkdir} bin/
cp -a $LIVECD/sbin/udev* sbin/
cp -a $(find $LIVECD -name "test" -type f) bin/
cp -a $(find $LIVECD -name "chroot" -type f) bin/
cp -a $(find $LIVECD -name "pivot_root" -type f) bin/
cp -H $LIVECD/lib/{libncurses.so.5,libdl.so.2,libc.so.6,ld-linux.so.2} lib/
cp -H $LIVECD/lib/{libreadline.so.5.0,libhistory.so.5.0} lib/
cp -a $LIVECD/dev/{console,null,ram{0,1,2}} dev/
cp -a $LIVECD/etc/{udev,dev.d,hotplug.d} etc/

ln -s bash bin/sh
ln -s test bin/[

Первая программа, выполняемая ядром, это /linuxrc. Так как она отсутствует, создадим ее. Наш скрипт найдет CD в правильном CD-ROM накопителе, а затем подмонтирует его в качестве корневой файловой системы / и запустит /sbin/init 3.

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

cat > $LIVECD/mnt/linuxrc << "EOF"
#!/bin/sh

# ID это файл в корне заргужаемого LFS CD, используемый для определения CD.

ID="livecd"

TMP_MOUNT="/mnt"

PATH="/bin:/sbin:/usr/bin:/usr/sbin"

CHECK_TYPE="try_mount"

# МОНТИРУЕМ ФАЙЛОВЫЕ СИСТЕМЫ ЯДРА

# Создаем директорию proc, если ее нет

if [ ! -d "/proc/" ]; then
mkdir /proc
fi

# Монтируем файловую систему proc

mount -n proc /proc -t proc

# Если sysfs перечислена в /proc как правильная файловая система,
# то монтируем ее (если это не так, то udev не будет работать и
# у вас не будет необходимых устройств)

if grep -q '[[:space:]]sysfs' /proc/filesystems; then
if [ ! -d /sys/block ]; then
mount -n sysfs /sys -t sysfs
fi
fi

# Создадим некоторые вещи, которые sysfs не создает и не экспортирует для нас.
# Добавляйте устройства в этот список свободно.

make_extra_nodes() {
ln -s /proc/self/fd /dev/fd
ln -s /proc/self/fd/0 /dev/stdin
ln -s /proc/self/fd/1 /dev/stdout
ln -s /proc/self/fd/2 /dev/stderr
ln -s /proc/kcore /dev/core
mkdir /dev/pts
mkdir /dev/shm
}

if [ ! -x /sbin/hotplug ]; then
echo /sbin/udev > /proc/sys/kernel/hotplug
fi

# Монтируем временную файловую систему через /dev, так что
# любые устройства, созданные или удаленные во время этой загрузки,
# не влияют на дальнейший процесс.
# Мы не записываем в mtab поскольку не хотим, чтобы
# /dev был недоступен (например при `umount -a').

mount -n ramfs /dev -t ramfs

/sbin/udevstart

make_extra_nodes

# Определение Live CD является достаточно комплексным,
# но очень логичным процессом
# Ищем устройство cdrom и добавляем его в CDROM_LIST

CDROM_LIST=""

# Ищем в дереве proc устройства ide cdrom.
# Они использованы в качестве раздела в devfs, но это было
# отредактировано для udev. Возможно, мы реально не должны
# больше использовать /proc, а вместо этого использовать sysfs...
# Возможно в будущем

# Проверяем ide каналы.

for ide_channel in /proc/ide/ide[0-9]
do

# Если ide каналы не обнаружены, то пропускаем

if [ ! -d "$ide_channel" ]; then
break
fi

# Проверяем каждое устройство ide на наличие cd-rom накопителя

for ide_device in hda hdb hdc hdd hde hdf hdg hdh hdi hdj hdk hdl hdm hdn
do
device_media_file="$ide_channel/$ide_device/media"
if [ -e "$device_media_file" ]; then
grep -i "cdrom" $device_media_file > /dev/null 2>&1
if [ $? -eq 0 ]; then
CDROM_LIST="$CDROM_LIST /dev/$ide_device"
fi
fi
done
done

# Проверяем scsi cd-rom

for scsi_cdrom in /dev/scd[0-99]
do
if [ -e "$scsi_cdrom" ]; then
CDROM_LIST="$CDROM_LIST $scsi_cdrom"
fi
done

# Теперь пытаемся найти загрузочный LFS CD (мы используем ID для идентификации)

LFS_CDROM_DEVICE=""

for cdrom_device in $CDROM_LIST
do
if [ "$CHECK_TYPE" = "try_mount" ]; then
mount -n -t iso9660 ${cdrom_device} $TMP_MOUNT # > /dev/null 2>&1
media_found=$?
fi

if [ $media_found -eq 0 ]; then
echo -n "media found"
if [ "$CHECK_TYPE" = "try_mount" ]; then
[ -e "$TMP_MOUNT/$ID" ]
media_lfs=$?
fi

if [ "$CHECK_TYPE" = "try_mount" ]; then
umount -n $cdrom_device > /dev/null 2>&1
fi

if [ $media_lfs -eq 0 ]; then
echo ", LFS boot CD found. Ready!"
LFS_CDROM_DEVICE="$cdrom_device"
break;
else
echo ", not LFS boot CD."
fi

else
echo "no media "
fi
done
 
Ответить с цитированием

  #2  
Старый 13.03.2007, 14:31
Аватар для system_32
system_32
Участник форума
Регистрация: 06.07.2006
Сообщений: 202
Провел на форуме:
962974

Репутация: 245
Отправить сообщение для system_32 с помощью ICQ
По умолчанию

# Монтируем LFS CD как / (root fs)
if [ "$LFS_CDROM_DEVICE" = "" ]; then
echo "No LFS boot CD found!!!"
exit 1
else
echo "Booting from $LFS_CDROM_DEVICE..."

# Это магическая часть, которая оживляет Live CD!
# CD подмонтирован и команды pivot_root+chroot
# используются для запуска системы.
# Если вы действительно хотите знать, что здесь происходит,
# вы должны прочитать man-страницы по chroot и pivot_root.

mount -n -o ro -t iso9660 $LFS_CDROM_DEVICE $TMP_MOUNT
cd $TMP_MOUNT
pivot_root . mnt
umount -n /mnt/proc >/dev/null 2>&1
exec chroot . sh -c 'umount -n /mnt >/dev/null 2>&1;
exec -a init.new /sbin/init 3' dev/console 2>&1

fi

EOF

Сделаем этот скрипт исполняемым:

chmod 0755 $LIVECD/mnt/linuxrc

Это все. Отмонтируем образ и сожмем его.

cd $LIVECD/
umount $LIVECD/mnt
gzip $LIVECD/boot/initrd

ЗАПИСЬ Live CD


Если у вас есть CD-RW, вы можете использовать его для проверки. Когда вы убедитесь, что это работает с CD-RW, вы сможете записать все на CD-R.(Я вам это советую, так как у меня было более 10 CD-R, которые не работали ;-)

Перед началом записи проверьте размер вашего дерева LFS:

du -sh $LIVECD/

Удалите все, что вам не нужно на Live CD. (т.е. /usr/src/*)

Поскольку linuxrc должен идентифицировать CD, вы должны создать файл, называемый "livecd".

touch $LIVECD/livecd

Теперь запишем LFS систему на CD.

Замечание!!

* dev=/dev/hdc это номер устройства вашего CD-Writer-а
* Проверьте ваше устройство при помощи "cdrecord -scanbus"
* speed=4 может быть изменено на (максимальную) скорость вашего CD-Writer-а.
* Если вы не используетеCD-RW, удалите blank=fast из команды cdrecord!

cd $LIVECD/
mkisofs -R -l -L -D -b isolinux/isolinux.bin -o $ISODIR/livecd_image.iso \\
-c isolinux/boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table -V \\
"livecd" $LIVECD && cdrecord -v -eject dev=/dev/hdc blank=fast \\
$ISODIR/livecd_image.iso

БЛАГОДАРНОСТИ:

Благодарю:

* Thomas Foecking и Christian Hesse
За написание совета "Простой загружаемый CD из вашей LFS"

* Gabriel Aneceto Munoz
За устранение синтаксических ошибок и за другие дополнения

* Bernard Robbins
За внесение некоторых хороших предложений

Показалась интересным запостил!
 
Ответить с цитированием

  #3  
Старый 14.03.2007, 19:42
Аватар для andy13
andy13
Участник форума
Регистрация: 04.02.2007
Сообщений: 120
Провел на форуме:
306837

Репутация: 36
По умолчанию

неплохо было бы добавить, что
"LFS - это Linux From Scratch, то есть Linux из ничего, а именно Linux, собранный исключительно из исходников."
http://lfs.linux.kiev.ua
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программы для начинающих [Ghost] ICQ 19 20.11.2006 21:09
"Доктор Веб" выпустила новые версии антивирусов для ОС Unix/Linux TTN_ Мировые новости 0 31.08.2006 21:20
Несколько приемов для начинающих foreva Чужие Статьи 0 06.02.2005 11:35



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ