После падения. Установка FreeBSD на USB флэшку

Итак. Приехал я из деревни, лег спать, проснулся. Хочу проверить сайтик свой. А сайт не грузится. Лезу через локальную сеть — Фря молчит, лезу на полку, где лежит ноут, открываю крышку — а там все висит. Перезагружаю — пытается грузануться Фря, начинается проверка файловой системы и ребут. 2 раза я так пробую загрузиться потом из недр ноутбука доносится свист скрип и вообще…. Собираюсь на работу, прихватываю с собой ноут. Там вытаскивую винт, вставляю в док-станцию — скрип, скрежет и прочее. Ну значит не судьба — а нет, судьба, винт определяется и программулиной R.Saver вытаскиваю последний бэкап наполовину, а затем винт окончательно затихает. Попробовал пересадить банку и плату в другой похожий винт со сгоревшей электроникой, но живым подшипником — результата ноль, т.к. голова циклично паркуется и все. Ну да ладно. Надо сайт восстанавливать.
В связи с тем, что еще на этапе установки Фри на этот ноут отсеялись еще 2 винта по причине плохих смартов и из-за неимения новых miniIDE устройств решил ставить Фряху на флэшку. Почитал про это дело. Выявил стратегию. Систему ставить на флэху, от свапа отказываться, затем переводить файловую систему в режим «Read Only«. После этого катологи /var и /tmp монтируются в память (Фря сама так делает). Папку с Вордпрессом и базу данных Мускула надо выносить на отдельное устройство. Бэкапы делать еще на одно устройство.
Купил я флэху. Пока одну. Вставил в ноут и начал с диска ставить. Все поставилось. Ставить надо без свапа. В принципе можно сделать его, но зачем — все равно отключать, ибо флеха может умереть раньше времени. Да и свап можно подкрутить позже на отдельном устройстве (как я и сделал).
Теперь об установке софта. Тут есть хитрость. Порты хранятся в папке /usr/ports/. Информация о пакетах хранится в /var/db/pkg/. Если в первом случае мы легко решаем проблему с доступом монтируя корневую файловую систему в режим записи «на лету» командой

# mount -uw /

на время установки портов, то информация о пакетах будет храниться в ОЗУ, что означает — до следующей перезагрузки. Это плохо. В этих ваших интернетах и в мане по FreeBSD пишут, что это решается созданием ссылки на каталог на нашем носителе, делается это по мнению этих писунов добавлением команды

# ln -s /etc/pkg /var/db/pkg

в конец файла /etc/rc.d/var. Да. Только видимо эти «знатоки» команды знают плохо. И если мы уже созданный католог делаем ссылкой, то ссылки на объекты появляются внутри каталога. И надо часать репу, как модифицировать функцию var_populate, чтобы /var/db/pkg не создавался заранее. Но это че то жестко. Мы пойдем другим путем. Перед ln -s вставляем команду

# rm -r /var/db/pkg

Также надо для каталогов /var и /tmp указать в файле /etc/rc.conf объем, занимаемый в памяти. Я сделал так:

varmfs=true
varsize=96M
tmpmfs=true
tmpsize=48M

При такой конфигурации у меня без ошибок обновлялась базы по пакетам и портам.
Теперь инфа о установленных пакетах лежит на флешке в каталоге /etc/pkg/.
Несколько слов о софте. Я люблю mc и cfdisk (во Фряхе он зовется linuxfdisk, fdisk-linux). Еще нам понадобится curl. Файловый менеджер mc соберем из портов. Необходимо собирать с модулем slang и БЕЗ модуля subshell. Это надо для просто работы через putty.
cfdisk также ставим из портов.

# cd /usr/ports/sysutils/linuxfdisk
# make install clean

curl поставим из пакетов. Ну чтобы охватить и этот вариант установки. Откорректируем файл portsnap.conf — добавим строчку

WORKDIR=/etc/portsnap

Ну и далее

# pootsnap fetch
# portsnap extract
# pkg add curl

Теперь займемся местом для Вордпресса, БД и свапа (да, все же я сделаю небольшой свап). Нашел винт на 40Гб с битой серединой. Он уже был разбит и его структуру я взял за основу. Количество секторов, размер и прочее можно посмотреть хоть в Виктории, хоть при помощи cfdisk/fdisk во фре. Затем надо посчитать все свои разделы, вычислить смещения. Я этого не делал, ибо размеры и смещения я взял готовые. Но все создал заново. Сделаю свап на 1Гб и каталог под сайт. Кроме того создам каталог в конце, чтоб знать, где еще живое место. Понадобятся утилиты linuxfdisk или gpart.

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

# gpart destroy ada0

Теперь создаем новую разметку диска со схемой GPT

# gpart create -s GPT /dev/ada0

Создаем сва-раздел в 1Гб в начале диска (там доступ быстрее)

# gpart add -b 2048 -s 2097152 -t freebsd-swap /dev/ada0

где

-b 2048 — первый сектор раздела -s
2097152 смещение от первого сектора
-t freebsd-swap — файловая система
/dev/ada0 — наше устройство

далее добавим еще 2 раздела

# gpart add -b 2099200 -s 7057850 -t freebsd-ufs /dev/ada0
# gpart add -b 54009762 -s 24130365 -t freebsd-ufs /dev/ada0

Посмотрим что у нас получилось:

# gpart    show    /dev/ada0
=>           34     78140093    ada0     GPT (37G)
34            2014                 — free —     (1.0M)
2048       2097152           1    freebsd-swap (1.0G)
2099200       7057850           2    freebsd-ufs (3.4G)
9157050     44852712                 — free —    (21G)
54009762     24130365           3    freebsd-ufs (12G)

Теперь отфарматируем и внесем в /etc/fstab изменения

# newfs -U /dev/ada0p2
# newfs -U /dev/ada9p3
# ee /etc/fstab

Доводим до такого вида

# Device        Mountpoint      FStype  Options  Dump    Pass#
/dev/da0p2     /                     ufs        ro          1           1
/dev/ada0p1   none               swap     sw         0           0
/dev/ada0p2   /wwwroot          ufs        rw         0           2
/dev/ada0p3   /backup          ufs        rw          0           2

 

Тепер у нас размечен диск. Как можно увидеть 3-й раздел на винте я смонтировал в папку /backup, пока не купил еще одну флэшку, туда буду бэкапы скидывать. Тепер ребутимся. И переходим к софтовой части восстановления.

В связи с памятью о танцах с бубном при прошлом перезде на новое железо. решил остановиться на следующем конфиге:

FreeBSD 10.0
apache24-2.4.9
php-5.5.13
mysql-5.5.38

Ввсе как обычно. ставится по этой и этой статьям. Только с учетом того, что /usr/local/www/wordpress/ меняем на /wwwroot/wordpress/, а /var/db/mysql/ на /wwwroot/db/. Так же в файле /etc/rc.conf надо дописать строчку

mysql_dbdir=»/wwwroot/db»

Кроме того, для оптимизации резервного копирования в файл /root/backup.sh вносим изменения, чтобы он выглядел так

#!/bin/sh
#data arhiva YYYYMMDD-HH.MM
DATA=`date +%Y.%m.%d-%H.%M`
#mesto dlya arhiva
BACKUPDIR=/backup/wordpress
#4to rezerviruem/copiruem
DIRECTORIES=»/wwwroot/wordpress»
#put’ k programme TAR
TAR=/usr/bin/tar
#nazvanie arhiva bez daty
LABELARH=wp_backup
#imya faila budet imet’ vid
ARCHIVNAME=$BACKUPDIR/$LABELARH-$DATA.tar
#sozdayom arhiv
cd /
$TAR -cpf $ARCHIVNAME $DIRECTORIES
#udalyaem archivy starshe 7 dnej
find /backup/wordpress/ -type f -atime +5 -delete
exit

Не забываем про 2 пустых строке в конце файла!

Теперь у нас удаляются бэкапы с Вордпрессом старше 5 дней.

С mysqlmackup тоже нужно поработать и внести в файл /etc/periodic.conf изменения, чтобы он выглядел так

mysqlbackup_enable=»YES»
mysqlbackup_args=»-a -u root -l 5 -d /backup/ -z gzip»

Наслаждаемся полученным результатам!

Comments

  1. Деньдобрый!
    прочитав Вашу статью, заинтересовался установкой FreeBSD 10 на USB HDD. Хочется использовать систему на внешнем носителе, дабы можно было бы подключать внешний диск к разным компам. Можно ли описать сам процесс установки FreeBSD на внешний диск? Уже третий день лопачу интернет, инфа имеется, но только под старые версии фрюхи. Пробую устанавливать FBSD, но при буте с внешнего HDD напишет «boot: F1» и появляются #######.
    Зарание благодарен за ответ.

  2. Доброго дня. Ну собственно у меня никаких не было нюансов — берем диск с Фряхой и при установке выбираем USB-носитель. Может там проблема конкретно с Вашей моделью харда?

  3. И еще ,попробуйте PC-BSD, он, правда, только x64 в последних версиях вроде…. Да, и самое главное — зачем Вам носимая Фряха? Может проще какой-нибудь Линух? У него и с совместимостью получше. И проще настроить. Фря хороша тогда, когда ничего не надо менять. Настроил и забыл. А в «носимом» варианте постоянно придется править сетку, могут возникнуть траблы со слайсами.

  4. Спасибо Вам за скорый ответ.
    Может вы и правы в плане постоянности Фряхи, зачем переносить? 🙂
    Вот и я устанавливал Фряху на ЮСБ-носитель сразу (в инсталяторе сыстемы указывал usb-hdd), но не получается. Может вы и правы по поводу совместимости с самим HDD. Я сейчас пытаюсь на другой гард устанавливать, посмотрим что из этого получится.

    А что касается, зачем мне это — так я пытаюсь сделать портативный сервер сетевой загрузки Винды и Линукса на основе Фряхи, дабы подключив к любому ПК в сетке, можно бы было на остальные компы устанавливать ОСы по сети. Просто много мануала я нарыл именно с Фряхой (хотя сейчас подумываю над OpenSuse).

  5. а вообще в винт в FreeBSD нормально определяется? Ну в смысле в стационарной… Я тоже как-то делал PXE, даже статья тут была, но когда сервак умер, она пропала. А заново писать влом(((( Но я использовал стандартные виндовые средства))) С дровами там беда….

  6. На другом гарде тоже не получается стандартным путем установить систему, уже другие ошибки кидает (я использую usb-sata-hdd).


    Да, с винтом никаких проблем нет, распознается и работается с ним нормалек. На стационарном компе с Фряхой я как-то сервак PXE делал и работает нормально. Хотелось просто портативности всему этому. Ладно, сейчас скачиваю OpenSUSE, посмотрим как она себя зарекомендует.

  7. я думаю проблема в совместимости. Че то не то с именами слайсов и партиций мне думается… Может винты помирать начинают. У меня тоже несколько винтов не пошли.

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

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