Пропустить навигацию.
Главная

Создание загрузочной флэшки с Runtu3.0,Office с возм. сохранять изменения

Аватар пользователя Timkaz

Флэшка с рабочей системой, несомненно, вещь не только полезная, но порой даже и нужная.
Наша система будет основываться на grub4dos, замечательной squashfs, подправленном initrd и собственно, специально разбитой флэшке (все инструкции подходят также и для usb-hdd, и для обычных hdd).

После создания системы на флэшке все изменения будут сохраняться или же будет загружаться "чистая" live-система в зависимости от параметров загрузчика.

1. Создание filesystem.squashfs
Те, кого вполне устраивает конфигурация Runtu 3.0, которая загружается c liveCD, могут пропустить этот пункт.
А те, кто хочет установить необходимые для своей системы пакеты или удалить лишние -> делаем свои изменения на установленной системе и читаем дальше
(Вырезки из статьи "Оригинал: Booting Linux from Flash;Автор: Imran Nazar;Дата: 10 октября 2007;Перевод: Александр Тарасов aka oioki;Дата перевода: 12 октября 2007")

Цитировать
<<<Шаг 1: Копируем существующую файловую систему
Первый шаг - создать образ диска, который в итоге должен стать корневой файловой системой. Наверняка вы захотите создать образ с текущей запущенной системы. Нельзя сжимать / как есть, так как в данный момент могут быть примонтированы другие файловые системы. Поэтому нужно убрать эти монтирования. Простой способ - перемонтировать / где-нибудь в другом месте:

Бинд-монтирование / для устранения точек монтирования
# mkdir /root/bindmount
# mount -o bind / /root/bindmount

Новая бинд-монтированная корневая система станет чистым представлением того, что располагается на диске, без лишних на данный момент смонтированных файловых систем: это означает, что не должно быть файлов в каталогах /proc или /sys, и небольшое число файлов в /dev. Если все же остались какие-то файлы в этих каталогах, вы можете смело их удалить:

Очистка каталогов монтирования
# cd /root/bindmount
# rm -rf proc/* dev/* sys/*
# cp -a /dev/console /dev/null /dev/initctl dev

Не забывайте, в /root/bindmount мы все еще работаем с самой корневой файловой системой; нужно сделать копию, с которой будем производить остальные действия:

Копируем bindmount
# mkdir /root/fscopy
# cp -av /root/bindmount/* /root/fscopy

После завершения копирования можно спокойно удалять все файлы в каталоге /root/fscopy/tmp и /root/fscopy/var/tmp

Шаг 2. Создание образа копии файловой системы

Есть два достоинства SquashFS. Во-первых, его высокий коэффициент сжатия; файловая система в 2Гб на моем медиа-сервере сжалась до 500 Мб, что идеально для Flash-носителей малого объема. Во-вторых, чтение производится блоками (по умолчанию размер блока 64 Кб) и ядро кэширует лишь небольшое число блоков в данный момент; как результат, SquashFS занимает малый объем памяти.

Создание образа - простой вызов программы сжатия:

Making the SquashFS image
# cd /root/fscopy
# mksquashfs * ../filesystem.squash

>>>

Всё, теперь у нас есть файл-образ корневой системы /root/fscopy/filesystem.squash
Что бы проверить, всё ли прошло успешно можно примонтировать его куда-нибудь:

# mkdir squash-mnt
# mount -t squashfs -o loop /root/fscopy/filesystem.squash squash-mnt

Зашли, проверили, отмонтировали

#umount /root/fscopy/filesystem.squash

2. Создаём или скачиваем файл для сохранения изменений
Чтобы работал persistent mode система должна куда-то записывать изменения. Для используется доролнительный раздел на флэхе или файл, в котором находится файловая система. Инитрд ищет этот файл/раздел по имени/метке тома.
Если файл/раздел назвать casper-rw, то на него будут сохраняться все системные изменения, а точнее изменения корневой фс.
Если файл/раздел назвать home-rw, то на него будут сохраняться только файлы домашних каталогов.
Если файл/раздел назвать home-sn или casper-sn, то это для снепшотов. потом может добавлю в статью.
Если файл/раздел назвать как-либо иначе, то на него никакие изменения сохраняться в него не бедут.
Этот файл/раздел должен быть отформатирован в такую фс, которая подходит для корня, а конкретно ext2, ext3, raiserfs. Остановим свой выбор на ext3.

Скачиваем готовый файл на 256Мб, 1Гб, 2Гб, 3Гб или 4Гб: (Фалы почти пустые и заархивированные, поэтому весят до 5Mb (не Гб)) http://torrents.ru/forum/viewtopic.php?t=2131082
или создаём сами: http://www.pendrivelinux.com/how-to-create-a-larger-casper-rw-loop-file/
или создаём сами(копия с pendrivelinux):
Код:
# dd if=/dev/zero of=casper-rw bs=1M count=1024 //(где count - это в нашем случае количество мегабайт, которые мы отводим под изменения )
# mkfs.ext3 -F casper-rw

Примечание: файл casper-rw должен находиться в корне первого раздела, который должен быть форматирован в доступную ядру ФС (Ext, raiser, fat, НЕ NTFS).

3. Разбиение флэшки
Я рекомнедую перевести флэшку в режим "usb-hdd". Для этого понадобится маленькая утилитка под Win32 от "lexar" http://rs203.rapidshare.com/files/241894870/lexar_usb_format.zip(может работать не на всех моделях флэшек в силу марального устарения контроллеров последних)
Основное приимущество hdd режима - это возможность корректно работать со ВСЕМИ разделами на флэшке. Маленький непринципиальный недостаток - необходимость закрыть все окна MS Explorer'a перед безопаснім отключением(сам не закрывает как на обычных флешках)
Можно оставить и в режиме обычной флэшки, но как известно, под виндой будет виден только первый раздел.
Условно назовём эти режимы : режым flash и режим hdd.
Запускаем BootIt.exe, выбираем букву флэш-диска, нажимаем на кнопку "Flip Removable Bit", "Ок", перевтыкаем флэшку. Теперь если она отобразилась в группе с винтами, то всё действительно прошло успешно и её можно спакойненько разбивать даже из-под виндов, если же она оказалась в группе "Устройства со съёмными носителями", то либо утилита сработает со второго раза, либо флэшка не поддерживает такой режим.

Далее разбиваем любой известной и предназначенной для этого утилитой флэху на 2 раздела(см. соотв. маны по Gparted, fdisc, если перевели в режи hdd, то можно пользоваться виндовыми средствами и акронисом. Вобщем, что душе угодно)

1-й - раздел фат32 раздел для загрузчика и файлофранилище (в режиме флэш - это будет единственный доступный раздел из-под виндовс)

2-й - раздел любой доступной ядру рунту фс, как вариант - fat32. Этот раздел будет монтироваться в режиме только для чтения в каталог /cdrom. В этом разделе будем хранить образ системы filesystem.squashfs, можно так же сюда поместить initrd, ядро и ещё что-нибудь. Размер раздела = размер filesystem.squashfs + vmlinuz + initrd.gz) ещё чуть-чуть. Места может понадобиться больше, если потом захочется другой какой-нибудь образ squashfs вместо этого запхнуть.

При использовании маленьких флэшек этот раздел можно не делать, и все файлы залить на первый раздел, но тогда получи обычную live-cd флэшку и будет недоступно сохранение изменений без плясок с бубном над ядром и инитрд для перемонтирования почти всего.
При использовании больших флэшек можно добавить ещё один раздел для ntfs.

4. Установка
Ставим любым известным способм на флэшку граб (или другой загрузчик, который вам бошльше нравится)
Если разбивали на 2 раздела, то в конфиге меню граба прописываем:
Код:
title Runtu persistent # в режиме сохранения изменений
kernel (hd0,1)/casper/vmlinuz boot=casper persistent locale=ru_RU initrd=(hd0,1)/casper/initrd.gz #vga=0x31b - устанавливает разрешение в tty 1280x1024
initrd (hd0,1)/casper/initrd.gz

title Runtu live # в режиме LiveCD
kernel (hd0,1)/casper/vmlinuz boot=casper locale=ru_RU initrd=(hd0,1)/casper/initrd.gz
initrd (hd0,1)/casper/initrd.gz

title Runtu in safe graphics mode # понятно в каком режиме
kernel (hd0,1)/casper/vmlinuz boot=casper xforcevesa locale=ru_RU initrd=(hd0,1)/casper/initrd.gz
initrd (hd0,1)/casper/initrd.gz

## P.S.: при использовании одного раздела поудалять везде "(hd0,1)"
## P.P.S.: "Соли и перца - по вкусу" ;D

А теперь то, чего не хватало обычной рунте для загрузки с каспера(squashfs) в режиме сохранения - это подправленный рамдиск initrd. Скачать для Runtu3.0, Office_Pro, AbbyOffice можно отсюда http://torrents.ru/forum/viewtopic.php?t=2131082

Теперь наша флешка должна выглядеть примерно так:
1-й раздел содержит : grldr, menu.list, casper-rw(файл сохранений) и что угодно на ваше усмотрение
2-й раздел должен содежать папку casper, в которой: filesystem.squashfs, initrd.gz, vmlinuz (vmlinuz берём с диска)
(опционально)3-й раздел пока пустой и называется casper-rw - вместо файла casper-rw на первом разделе.

Если кому-то будет нужно, то напишу ссылки по с манами по разбиению и установке граба, ну, или кто-нибудь напишет

-------------------------
Чуть-чуть подправил правильнописание
-------------------------
Дописал по утилитке перевода флэшки в режим hdd
-------------------------
Как править intitrd.gz:
1. Распаковка(копируем куда-нибудь в пустую папку, и там выполняем)
Код:
# gunzip initrd.gz | cpio -i
2. Правка(правим скрипты, добавляем-удаляем модули)
3. Запаковка(перед запаковкой удаляем initrd)
Код:
# rm initrd
# find . | cpio -o -H newc | gzip -9 > initrd.gz
-------------------------
Известные баги:
При перезагрузки из консоли через reboot зависает
-------------------------

-------------------------
Инструкция исправлена и доработана. Добавил про casper-rw
-------------------------

Здесь(на форуме runtu.org) находится инструкция(скорее всего обновлённая) по созданию загрузочной флэшки с Runtu3.0, Runtu Office с возможностью сохранять изменения на эту флэшку и её обсуждение

Re: Создание загрузочной флэшки с Runtu3.0,Office с возм. ...

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

Re: Создание загрузочной флэшки с Runtu3.0,Office с возм. ...

теперь можно прикрутить эту статейку на главную

Re: Создание загрузочной флэшки с Runtu3.0,Office с возм. ...

Очень верно подмечено ;) Сделано)