И круг замкнулся! А что если Виртуальную перенести на Реальную, способом который так же переносит Реальную в Виртуальную, и Реальную на Реальную — это же бэкап черт побери! Будет сложно и долго, придется много работать пальцами — но это стоит того!!!
Для начала общий принцип делаем загрузочную флешку с образами ПО которое нужно для копирования Разделов FreeBSD, не важно с виртуальной или реальной. Это будет мультизагруженная USB-шка… но образ FreeBSD она почему то не захочет загрузить, так что его придется писать на болванку… Да, но это все не сработает, и уже сделанная куча скриншотов идет в мусорку!
Так что качаем:
Образ ISO FreeBSD 9.2, так как у нас на вирт 9,2 но нужен он только для разбивке жесткого диска, так что может подойдет любой 9.x
ftp://ftp.freebsd.org/pub/FreeBSD/releases/i386/ISO-IMAGES/9.2/FreeBSD-9.2-RELEASE-i386-dvd1.iso
И все! Можно конечно скачать ISO образ клонировшика жесткого дсика Clonezilla, но она с FreeBSD не работает. Еще можно скачать YUMI – Multiboot USB Creator для создания загрузочной флешки, но тоже с FreeBSD не работает, хотя казалось бы с любым ISO должен работать…
А вот просто флешка нам понадобиться! Да и кстати переносить будем не какую обстрактную виртулаьную машину а ITCooky VPS 1.1!
О железе
Берем старика Intel Atom D330 формат mini-ITX два ядра по 1,6 Ghz, с 1 Gb памяти, еще более старый ATA-шный диск! Что удивительно за 4 года, мат платы на Atom чуть-чуть подрос в герцах, но сильнее в цене!
Он еще тянет — но это прям минимум! Самый прожорливый конечно SAM2 с его детьми для проверки по базе URLов на вшивость! Ruby также — еще один не нужный вебсервер — жрет прям все ядро (хорошо что два)!
В настройках нашей виртуальной машины, которую мы хотим вернуть в реальность, в настройках включаем USB и добавляем нашу флешку
Грузим виотуальную машину ITCooky VPS 1.1 на загрузке выбираем
2. Boot Singel User
Для начала проверим все разделы на ошибки
fsck -y
Подключим флешку
mkdir /mnt/test
mount_msdosfs /dev/da0s1 /mnt/test
И начнем копировать разделы! Эээмм процесс простой, но почему-то поиск этих строк у меня занял неделю! Во первых надо понимать что мы пишем на флешку(я с 5-го раза только понял), а она FAT32, значит надо разбить файлы на куски по 4 кило мегабайт. Потом dump хочет в конце создать файл, в который напишет дату создания копии, ндааа только в Single User никуда кроме флешки записать он не сможет, так что указываем ему путь — а то он психанет, и уже созданный дамп сотрет (истеричка)! Так же не достаточно указать размер частей на которые будем делить, надо так же указать и имена дл яэтих частей, а то тоже дамп запорится, у нас больше двух кусков не будет.
Так же надо понимать свою структуру партишенов, её можно посмотреть в /etc/fstab
ada0p2 это / корень
ada0p3 это /var/log
ada1p2 это /usr/hard2 куча всего нужно как бы лежит на другом вирт диске, но всё будем класть на один реальный.
Запускаем команды, это на долго, но не отходим — каждый следующий кусок надо будет потдвержать еськаньем (это не отключить так просто)
dump -0u -B 4000000 -D /mnt/test/droot -f /mnt/test/root1,/mnt/test/root2 /dev/ada0p2
dump -0u -B 4000000 -D /mnt/test/dvarlog -f /mnt/test/varlog /dev/ada0p3
dump -0u -B 4000000 -D /mnt/test/dusrhard2 -f /mnt/test/usrhard2_1,/mnt/test/usrhard2_2 /dev/ada1p2
На ВМ все выключаемся!
Теперь на ПК на который будем переносить ВМ с FreeBSD загрузимся с дсика FreeBSD установщика(жмем 1 в начале, или не жмем 1 по таймауту)!
Сразу выбираем
Shell
Тут беремся за разбивку диска, на котором мы конечно же все удалим
Смотрим что есть
gpart show
есть диск ada0 его удаляем
gpart destroy -F ada0
И делаем разделы чуть больше чем на ВМ, кроме последнего под нег я отдаю все место на HDD, так как у нас будет один диск а не два как на ВМ.
gpart create -s gpt ada0
gpart add -t freebsd-boot -s 512K /dev/ada0
gpart add -s 2048M -t freebsd-swap /dev/ada0
gpart add -s 11G -t freebsd-ufs /dev/ada0
gpart add -s 2048M -t freebsd-ufs /dev/ada0
gpart add -t freebsd-ufs /dev/ada0
gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 ada0
newfs /dev/ada0p3
newfs /dev/ada0p4
newfs /dev/ada0p5
Именно так бут раздел, свап раздел, и ufs раздел — грузится с первго ufs раздела значит он должен быть всегда rootовый который!!!
Опять смотрим
gpart show
1 и 2 партишен ada0p1 и ada0p2 это загрузчик и свап.
3-тий будет /, 4-ый /var/log, 5-ый /usr/hard2
Теперь подключаем к ПК флешку с дампом
mount_msdosfs /dev/da0s1 /media
Монтируем раздел куда будем писать /
mount /dev/ada0p3 /mnt
Идем в эту папку и делаем патриотичное восстановление
cd /mnt
restore -rf /media/root1
Ругнётся что уже есть .snap но я надеюсь это не страшно
Сидим ждем когда запросит вторую кассету вводим
/media/root2
Отключаем
cd /
unmount /dev/ada0p3
повторяем это еще два раза для других дампов
mount /dev/ada0p4 /mnt
cd /mnt
restore -rf /media/varlog
cd /
unmount /dev/ada0p4
И
mount /dev/ada0p5 /mnt
cd /mnt
restore -rf /media/userhard2_1
Тут тоже вводим инфу а втором куске дампа
/media/userhard2_2
cd /
unmount /dev/ada0p4
по окончанию сразу редактируем fstab чтобы совпадала с нашими новыми названиями
vi /mnt/etc/fstab
вот так это должно выглядеть
# Device Mountpoint FStype Options Dump Pass# /dev/ada0p3 / ufs rw,acls 1 1 /dev/ada0p4 /var/log ufs rw,acls 1 1 /dev/ada0p5 /usr/hard2 ufs rw,acls 1 1 /dev/ada0p2 none swap sw 0 0 fdesc /dev/fd fdescfs rw 0 0 proc /proc procfs rw 0 0 #linprocfs /compat/linux/proc linprocfs rw 0 0
Выключаем, выниманием диск флешку и грузим!!!
Сервер загрузится но кое что надо еще поменять
Сетевые интерфейсы, смотрим какие есть
ifconfig
re0 — это RJ45 на него надо поменять где у нас записан em0
ath0 — это Wi-Fi его надо подключить сначала.
А пока нам нужен доступ по SSН так что займемся re0
редактируем файл
vi /etc/rc.firewall
строку
lanout="em0"
меняем на
lanout="re0"
и все где есть там em0 меняем на re0
редактируем файл
vi /etc/rc.conf
строку
ifconfig_em0="inet 192.168.1.200 netmask 255.255.255.0"
меняем на
ifconfig_re0="inet 192.168.1.200 netmask 255.255.255.0"
а так же тут строчку
natd_interface="em0"
на
natd_interface="re0"
Перезагружаемся и заходим по SSH
Устанавливаем Wi-Fi
Создаем интерфейс коммандой
ifconfig wlan0 create wlandev ath0
Добавляем в rc.conf строки даем беспроводному интерфейсу IP
вместо
ifconfig_em1="inet 192.168.1.200 netmask 255.255.255.0"
пишем
wlans_ath0="wlan0" ifconfig_wlan0="inet 192.168.1.200/24" create_args_wlan0="wlanmode hostap country RU" hostapd_enable="YES"
Создаем файл
vi /etc/hostapd.conf
добавляем в него строки
interface=wlan0 #hw_mode=g driver=bsd macaddr_acl=0 auth_algs=1 ssid=Imya_Nashe_Tochki_dostupa ctrl_interface=/var/run/hostapd ctrl_interface_group=wheel wpa=2 wpa_passphrase=12345678 wpa_key_mgmt=WPA-PSK wpa_pairwise=CCMP
Тут обнаружилось что с hw_mode=g Wi-Fi работает плохо, я написал driver=bsd и заработало офигительно
wpa_passphrase должен быть не менее 8 знаков
Редактируем
vi dhcpd.conf
строчку
interface em1;
на
interface wlan0;
редактируем файл
vi /etc/rc.firewall
lanin="em1"
на
lanin="wlan0"
Перегружаемся — работает!!!
Что еще надо изменить
ntopng
Смотрим каике он интерфейсы видет
ntopng -i
и меняем цифорку(у меня совпало, было 3 и стало 3, не менял)
в
vi /etc/rc.conf
вот в этой
ntopng_flags="-G=/var/tmp/ntopng/ntopng.pid --local-networks "192.168.2.0/24" --interface 3"
И пожалуй все! Да на железе кое что работает по другому — например netxmsd плохо через раз грузитсяь на ВМ, на железе вообще не грузиться — запустил его руками!
Добавить комментарий