Перейти к содержимому

Как записать slax на флешку

  • автор:

ОС Slax 9

Подробный отчет об освоении новой ОС и нового оконного менеджера.

01-Установка

  • скачиваем и распаковываем ISO образ
  • копируем папку /slax в корень носителя
  • запускаем в любом Linux скрипт /slax/boot/bootinst.sh, и устройство становится загрузочным (только для Slax!)
  • в Windows запускать bootinst.bat (у меня нет никакой Винды уже много лет, и этот вопрос меня не интересует, информацию о совместном использовании ищите на просторах. )
Комментариев нет:
Отправить комментарий

Примечание. Отправлять комментарии могут только участники этого блога.

Загрузка и установка. Slax на HDD, USB.

Если Вы планируете запускать Slax на CD или DVD диске, вам нужно скачать ISO образ системы. Важно понимать, что записать полученный файл нужно именно как образ диска. В Windows 7, например, просто щелкните правой кнопкой мыши по файлу ISO и выберите «Записать образ диска» из контекстного меню. На более старой ОС Windows вам потребуется стороннее программное обеспечение для этой задачи, например, вы можете попробовать Free ISO Burner.

После этого поместите диск Slax в CD/DVD привод и перезагрузите компьютер. Возможно, нужно будет нажать какую-то клавишу, чтобы отобразить меню загрузки во время запуска вашего компьютера, и выбрать пункт загрузки с диска.

Slax на USB устройстве или жестком диске.

Что бы запустить slax на USB устройстве или HDD, вы должны скачать ZIP-архив c системой. Распакуйте архив прямо в корневую директорию Вашего устройства, где после распаковки будет создана папка /slax/. Далее, перейдите в /slax/boot/ и найдите там bootinst.bat файл. Для установки slax на жёсткий диск или flash карту прсто запустите найденный файл, дважды щелкнув по нему, это внесет все необходимые изменения в MBR вашего устройства и сделает его загрузочным.

Далее следуйте тем же действиям как при загрузке через CD – перезагрузите компьютер и в меню загрузки выберите пункт запуска системы с USB или жёсткого диска.

Доводим live-usb до ума

Моей задачей было создание портативной домашней системы. Я не хотел делать никакой служебный дистрибутив или что-то в этом роде. Для восстановления системы у меня есть SystemRescueCD, для проверки сетей — замечательный BackTrack, поэтому мне такое не нужно. Мне хотелось сделать так. чтобы на чужом компьютере всё было как дома.

За время моего использования GNU/Linux я совсем отвык от windows-интерфейса. Теперь я переключаю раскладку клавишей CapsLock, использую compose key, настраиваю систему через консоль, держу SSH на сервере, набираю код в VIM’е, управляю программами при помощи мышиных жестов, шифрую переписку, пользуюсь Jabber’ом. Мелочи, но их много.

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

В качестве дистрибутива я выбрал SLAX, потому что он:

  • маленький, простой, лёгкий и быстрый;
  • изначально создавался как live-дистрибутив и прекрасно выполняет эту роль;
  • придерживается принципа KISS;
  • имеет немалочисленное сообщество;
  • построен на основе замечательной системы модулей, отдельно сохраняет изменения в файловой системе;
  • может быть установлен на файловую систему FAT;
  • поставляется со средой KDE, моей любимой.

Как работает?

Чтобы всем было непонятно, я расскажу, откуда в слаксе файлы берутся.

В директории slax/base/ лежат LZM-модули, из которых вылупляется базовая система. Сам модуль напоминает пакет, только с одним отличием — он никогда не распаковывается на физический носитель, а просто подключается к файловой системе. И не нужно никаких процедур установок или удалений: модуль либо подключён, либо нет. Для подключения стороннего модуля к системе достаточно набрать activate «имя_модуля» или положить его в директорию slax/modules/ , откуда он сам подключится после запуска системы.

А как быть с данными, которые накапливаются в процессе работы? Они все складываются в директорию slax/changes/ на флеш-носителе. Например, если вы набрали документ и сохранили его по адресу /home/user/document.odf , то физически система положит его в slax/changes/home/user/document.odf . При следующем запуске так же загрузится базовая система из модулей, директория slax/changes/ подключится к корню и всё станет так, как было за сеанс предыдущей работы.

Следует отметить, что многие конфигурационные файлы (директория /etc ) создаются live-скриптами каждый раз заново, поэтому бесполезно, например, редактировать /etc/X11/xorg.conf по своему вскусу — он всё равно будет стёрт после перезагрузки.

Но самое интересное — это возможность оверлея. В slax/changes/ хранятся не только данные о пользовательских файлах, но и данные об изменении уже существующих файлов из модулей! Допустим, мы хотим заменить утилиту ls своей версией, более продвинутой, с возможностью грабить караваны. Для этого нам нужно просто переместить её в директорию /bin/ , заменив оригинальный файл. Разумеется, изменения вступят в силу немедленно: набрав ls в консоли, мы получим «продвинутую» версию. Тем временем на физический носитель запишется файл slax/changes/bin/ls , который после перезагрузки «перекроет» оригинальную версию из модуля. С оригинальной же версией ничего не происходит. То есть модули доступны только для чтения, но есть возможность изменения файлов, находящихся в них.

Таким образом, если новая версия ls окажется нестабильной, всё, что нам нужно для восстановления былой работоспособности — это удаление slax/changes/bin/ls . Так как система не найдёт утилиту ls в папке slax/changes/ , она пойдёт за ней в модуль, где утилита оставалась без изменений всё это время. Как вы уже могли догадаться, «поломать» оригинальные системные файлы становится невозможно, а для ремонта нам всего лишь нужно почистить slax/changes/ . Чего хочешь, то и твори.

Кстати, есть возможность не только изменять файлы из базовой системы, но и «удалять» их. Попробуйте разобраться, как это работатет.

Также сводится до банальности процесс обновления системы. Старые файлы просто заменяются файлами нового релиза, а slax/modules/ и slax/changes/ остаются нетронутыми. Поэтому все изменения за время жизни системы сохраняются, и никаких вам пакетных менеджеров и конфликтов.

Установка

Ставим на flash-носитель. Раздел на нашей флешке можно сформатировать в любую файловую систему — хоть в FAT, хоть в Ext2, хоть в ReiserFS. Везде заработает. Никаких своп-разделов не нужно: если таковые имеются на жёстком диске, они будут подключены при загрузке системы.

Несмотря на то, что SLAX, используя хитрые костыли, нормально работает в FAT’е, я НЕ рекомендую устанавливать систему на FAT-раздел. Просто потому, что в этом случае:

  • возможны потери сохранённых данных в случае некорректного завершения работы;
  • права на файлы и папки, символические ссылки, а так же регистр символов в именах файлов и папок будут сохраняться необычным способом;
  • вы закалебаетесь чистить флешку от вирусов с Windows-машин.

Кстати, я установил SLAX именно на FAT, и мне приходится терпеть все эти неудобства.

Итак, скачиваем последнюю версию дистрибутива в формате tar с ftp://slax.org/. Ещё лучше стянуть с торрента. Когда скачали — монтируем раздел на флешке в какую-либо директорию. У меня это /mnt/flash :

# mount /dev/sda1 /mnt/flash

Распаковываем скачанный архив в эту папку:

# tar xvf slax-*.tar -C /mnt/flash

Затем делаем этот раздел загрузочным. Для этого переходим в каталог boot/ на нашей флешке и запускам скрипт bootinst.sh :

# cd /mnt/flash/boot # bash bootinst.sh

Всё. Можно перезагрузиться, настроить в BIOS’е загрузку с USB-Flash и пользоваться портативной системой.

Локализация

Вообще-то на официальном FTP-сервере есть всё необходимое для русификации. Но так как идущую по умолчанию локаль iso88595 мы в гробу видели, нам придётся идти другим путём.

Novah подготовил модуль, устраняющий все проблемы с русским языком. Опять же, мне в нём кое-что не понравилось, и я сделал свой.

Схема русификации несложная. Скачиваем два файла — модуль с локалями и загрузочный образ:

Образ initrd.gz поместите в директорию boot/ , модуль russian-utf8-6.0.7-i486-2.lzm — в slax/modules/ . После перезапуска у вас будет полностью русифицированная система.

И не забудьте переключить кодировку в Konsole. Выбор кодировки — в меню.

Языки ввода

Пожалуйста, не надо ничего ковырять в xorg.conf . Он всё равно будет стёрт live-скриптами после перезагрузки. Прочитайте лучше моё руководство по переключению раскладок клавиатуры в KDE.

Синхронизация

Очень удобно работать за чужим компьютером, если на нём есть копии своих данных. Если речь не идёт об их утечке, разумеется. А когда к любому компьютеру можно подцепить флешку, загрузить SLAX и работать свою работу как ни в чём не бывало, а потом ещё и перенести через ту же флешку наработанную работу к себе домой — то это вообще отпад. Как можно догадаться, для этого нужно регулярно синхронизировать данные между флеш-носителем и своим родным десктопом. О некоторых тонкостях этого дела я сейчас расскажу.

Для начала нужно решить, что мы будем синхронизировать. Это могут быть:

  • программы;
  • их настройки;
  • создаваемые нами самими данные.

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

С настройками вроде бы всё понятно: если я отключил функцию варки кофя в emacs, то я хочу видеть эту функцию отключённой и на своей портативной системе! Синхронизируя конфигурационные файлы между системами, у меня будут одинаковые настройки и одинаковое поведение программ на обеих системах. Но и тут не всё ладно. Бестолково, например, синхронизировать файлы из каталога /etc , часть которых всё равно перезаписывается при каждом старте SLAX’а.

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

И так далее. Выбирайте то, что вам действительно нужно. Ещё лучше сначала посмотреть, без обновления каких настроек жить не мила, а потом уже отмечать нужное.

Копия наших рабочих данных на SLAX’е позволяет нам за любым компьютером скоротать время, занимаясь любимой работой. Пописать, покодить.

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

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

Только не забывайте, что вашу флешку — и все данные на ней — могут украсть. Шифрования мы пока ещё не прикрутили.

Главным инструментом для синхронизации будет Unison.

Unison — утилита для синхронизации файлов, написанная на языке OCaml. Она позволяет синхронизировать две копии файлов, на локальном компьютере или на двух разных хостах, обновляя каждую копию в зависимости от произведённых изменений.

  • Unison работает под Unix-подобными операционными системами и под Windows. Он также может работать с разными платформами одновременно, например, синхронизируя файлы между Windows-ноутбуком и Unix-сервером.
  • В отличие от простых утилит для создания зеркал и бекапов, Unison умеет работать с изменениями в обеих копиях файлов. Неконфликтующие изменения могут вноситься автоматически, конфликтующие определяются и отображаются для ручного разрешения.
  • Unison — не распределённая файловая система, а потому может работать без дополнительных модулей в ядре и прав суперпользователя.
  • Unison работает между любыми компьютерами, соединёнными между собой глобальной или локальной сетью, через сокет или зашифрованное соединение. Он аккуратно относится к ширине канала и прекрасно работает даже на медленных PPP-соединениях. Передача небольших изменений больших файлов оптимизируется протоколом, похожим на rsync.
  • Unison устойчив к сбоям, позволяет восстановить копии файлов после обрыва связи или некорретного завершения работы.
  • Unison имеет чистую, точную спецификацию, а исходный код Unison’а доступен по лицензии GPL.

Unison нам понадобиться главным образом на нашем десктопе, так что установите его с помощью своего любимого пакетного менеджера. Иногда он будет нужным и на флешке, поэтому скачайте мой lzm-модуль юнисона и поместите его в slax/modules .

Для любителей графических интерфейсов я специально не собрал GUI-версию unison’а — чтобы не выкабенивались и сами почувствовали удобство консольной версии.

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

Нам будут показаны два столбика — для первой и для второй папки, справа от них — синхронизируемый файл, а так же срелки между двумя директориями. Где начало стрелки — папка, в которой было произведено изменение, а где конец — где его не было и куда нужно эти изменения внести. То есть файл как бы переносится из начала стрелки в конец. Если такая стрелка есть — значит, файл не конфликтует, и, если вы этого хотите, unison сделает действие по умолчанию. Для этого нужно нажать F. Если с действием по умолчанию вы по какой-то причине не согласны — нажмите на < или >, «поворачивая» стрелку в ту сторону, в которую вам нравится. Если вы не хотите ничего делать с этим файлом — поставьте / (слеш), и файл просто пропустится.

Ещё один немаловажный момент. Перед первым боевым запуском синхронизируйте и часовые пояса на обеих системах. Проще всего это сделать кликнув правой кнопкой по «часикам» в KDE. При определённых обстоятельствах это может привести к тому, что даты изменения файлов будут различаться на несколько часов.

Подробнее о юнисоне написано в документации на официальном сайте. Прочитайте, там всё не так страшно, как кажется. Здесь я лишь покажу, как получилось у меня.

Кстати, можно избавиться от многих проблем, связанных с различием логинов, сделав на SLAX’е символическую ссылку в /home на директорию /root . Например, /home/user → /root

Я сделал файл ~/.unison/slax.prf следующего содержания:

# # Paths for synchronization # # Unison :) path = .unison/slax.prf # Vim path = .vimrc # Bash path = .bashrc # KWallet path = .kde/share/apps/kwallet/ path = .kde/share/config/kwalletrc # SSH path = .ssh/ # Kontact path = .kde/share/config/kontactrc path = .kde/share/config/kontact_summaryrc path = .kde/share/apps/korganizer/ path = .kde/share/config/kaddressbookrc path = .kde/share/apps/kabc/ path = .kde/share/apps/kontactsummary path = .kde/share/config/kcmkmailsummaryrc path = .kde/share/config/kcmkorgsummaryrc path = .kde/share/config/kcmsdsummaryrc # My signature for emails path = .signature # Basket path = .kde/share/apps/basket path = .kde/share/config/basketrc # Konversation path = .kde/share/apps/konversation #path = .kde/share/config/konversationrc # Because log settings # Konqueror path = .kde/share/config/konquerorrc path = .kde/share/apps/konqueror/bookmarks.xml path = .kde/share/apps/konqueror/konqueror.rc path = .kde/share/apps/konqueror/profiles/ path = .kde/share/apps/kcookiejar/cookies # Konqueror's cookies path = .kde/share/config/khtmlrc # Konqueror's AdBlock # Kopete path = .kde/share/apps/kopete_cryptography #path = .kde/share/apps/kopete_history path = .kde/share/apps/kopete #path = .kde/share/apps/kopete_statistics path = .kde/share/config/kopeterc # Konsole path = .kde/share/config/konsolerc path = .kde/share/config/konsolepartrc path = .kde/share/apps/konsole/ # Yakuake path = .kde/share/config/yakuakerc path = .kde/share/apps/yakuake # always empty? # KDE hotkeys path = .kde/share/config/khotkeysrc # KWin rules path = .kde/share/config/kwinrulesrc # Developers! Developers! Developers! path = devel/ # # Ignore paths # # Ignore sockets ignore = Name *socket* # Ignore cache ignore = Path .kde/cache-* ignore = Path .kde/share/apps/konqueror/faviconrc # Kopete cache too ignore = Path .kde/share/apps/kopete/jabber-capabilities-cache.xml ignore = Path .kde/share/apps/kopete/jabberphotos ignore = Path .kde/share/apps/kopete/oscarpictures # Ignore temporary files ignore = Name lock ignore = Name *random_seed* ignore = Name *.new ignore = Name std.vcf__* # Ignore SLAX specific files ignore = Name .pxovl*

И добавил в /usr/local/bin/ на обоих системах два похожих, но разных скрипта.

#!/bin/sh # Synchronization script for SLAX. # Version for USB-Flash. [ "$1" = "" ] && home="/mnt/hda2/home/komar/" || home=$1 unison slax \ $home \ /root/
#!/bin/sh # Synchronization script for SLAX. # Version for home. unison slax -perms 0 \ # Because I use FAT $HOME \ /mnt/flash/slax/changes/root/

В директорию /usr/local/bin/ сам Бог велел класть самописные скрипты, так как она во многих дистрибутивах по умолчанию включена в $PATH , её не тронут пакетные менеджеры и её удобно бекапить.

У меня синхронизация занимает несколько секунд. Пробуйте.

Приложение

Как загрузиться с флешки, если BIOS не поддерживает загрузку с USB?

Такое можно часто встретить на старых компьютерах. USB-контролёр есть, а загрузку с него BIOS не поддерживает. Дабы избежать такой несправедливости, Томас подготовил маленькие образы для CD, загружающие ядро и и загрузочный образ. Их можно найти на ftp://slax.org, записать на mini-cd и таскать при себе где-нибудь в кошельке.

Однако этот загрузочный образ сведёт на нет все наши старания по юникодизации системы. Если вы настраивали русский язык так, как писал я, то будет лучше записать образ с другим initrd, корректно работающим с русским языком. Такую исошку я сделал, её можно скачать под именем slax-boot-usb-from-cd-utf8-x.x.x.iso здесь:

Модули

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

Как записать slax на флешку

Для загрузки slax usb-накопителя можно использовать разные способы. Есть 2 варианта загрузки: непосредственно из запакованного ISO-образа или из разархивированного на диск образа. При первом варианте весь образ загружается в оперативную память компьютера. Соответственно, если оперативной памяти меньше, чем размер образа, появится ошибка и ничего не получится. Рассмотрен пример, когда мы загружаемся из файлов на диске, не упакованных в образ.

Для записи slax можно пойти 2 путями. С записью загрузчика на флешку и без него, то есть используя встроенный загрузчик. Загрузчик на флешку обычно пишут, когда требуется сделать мультизагрузочную флешку.

Самый простой случай, когда вам не нужна мультизагрузочная флешка выглядит так:

1) скачать свежую версию Slax http://www.slax.org/en/download.php

2) разархивировать на диск так, чтобы папка boot оказалась в корне диска

3) если windows, то запустить boot/bootinst.bat, а если линукс boot/bootinst.sh

Готово, можно ставить загрузку в биосе с этого диска(она же флешка).

Если же вам нужна мультизагрузочная флешка, то действия будут такими:

1) установить grub4dos на флешку. Можно скачать тут или воспользоваться WinSetupFromUsb, и с помошью нее поставить grub4dos на носитель, либо воспользоваться скриптом входящим в состав grub4dos(см. внизу). При этом на флешке запишется загрузочный сектор и при выставлении в BIOS загрузки с flash-usb процесс загрузки будет передан grub4dos(сам загрузчик — это файл grldr в корне)

2) скачать свежую версию Slax http://www.slax.org/en/download.php

3) разархивировать на диск, у меня получилось (диск)/slax/ и в этой папке директория boot

4) в файле menu.lst который лежит в корне диска добавить строки:

title Slax
set root=(hd0,0)
kernel /slax/boot/vmlinuz ramdisk_size=6666 root=/dev/ram0 rw autoexec=xconf;telinit~4 changes=/slax/ fromusb
initrd /slax/boot/initrfs.img
boot

Загрузочный сектор можно восстановить заново отформатировав носитель.

Установка grub4dos из-под линукс.

Чтобы узнать диск, нужно ввести в терминале

и выбрать свой согласно размеру флешки.

Затем перейти в директорию с grub, ввести команду, сменив /dev/sdb на имя своего диска.

$ sudo ./bootlace.com /dev/sdb Disk geometry calculated according to the partition table: Sectors per track = 63, Number of heads = 255 Success. $ sudo mount /dev/sdb1 /mnt/flash/ $ sudo cp grldr menu.lst /mnt/flash/ 

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *