PXE Clonezilla – сервер для backup’ов
В этой статье я расскажу как установить сервер PXE и сделать загрузку clonezilla по сети для дальнейшего создания образов диска и восстановления. В предыстории хочется отметить, что clonezilla отличный продукт заметно облегчающий жизнь системному администратору и его команде, однако по умолчанию livecd или флешка не совсем удобны , и загрузка через PXE отличный способ облегчить себе жизнь.
К этому PXE шел долгий путь, сначала хотелось сделать, подобие Acronics’а, чтобы при старте можно было выбрать загрузку Clonezilla и восстановить операционную систему с скрытого раздела, но различные варианты с syslinux и grub не увенчались успехом на локальном жестком диске (с внешнего usb вообще проблем не было), и после этих тщетных попыток пришли к первоначальному варианту – загрузка по сети. В этом есть и свои плюсы и минусы,
из минусов:
-нагрузка на сеть, и сама загрузка на порядок медленнее;
-необходимость настройки на компьютерах загрузку по PXE ;
из плюсов:
-нет необходимости ходить с флешкой;
-возможность изменять параметры загрузки (PXE menu);
-автоматически создаете хранилище для образов;
Вот пожалуй самые значимые моменты, теперь перейдем к самой реализации.
Нам необходимо будет установить пакеты nfs и dnsmasq. Почему выбран dnsmasq? Он сразу умеет tftp и dhcp, также является кэширующим dns сервером, в принципе выбор остается за Вами, но в данной статье используются именно эти пакеты. Все это выполняется на Ubuntu server 10.04 LTS.
Первым делом устанавливаем dnsmasq (если установлен bind то останавливаем его, а лучше удаляем)
#apt-get install dnsmasq
Делаем конфиг следующего содержания:
interface=eth1 # слушаем только на внутреннем интерфейс е
dhcp-range=192.168.0.150,192.168.0.190,255.255.255.0,12h #задаем диапазон выдаваемых адресов
server=8.8.8.8 #dns сервер, можете вписать провайдерский
server=4.2.2.4 # dns сервер, можете вписать провайдерский
enable-tftp
tftp-root=/pxe
dhcp-boot=pxelinux.0
Теперь нам нужно создать следующую структуру папок для работы нашего PXE сервера
#mkdir /pxe
#mkdir /pxe/images
#mkdir /pxe/images/clonezilla
#mkdir /pxe/pxelinux.cfg
На этом этапе нужно скачать pxelinux.0 и menu.c32 из пакета syslinux
#wget http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.03.tar.gz
Распаковываем и там через find /путь до syslinux -name menu.c32 находим эти файла – их необходимо скопировать в /pxe корень.
Также скачиваем последний clonezilla live cd, распаковываем его и содержимое папки live копируем в /pxe/images/clonezilla
После этого создаем наше меню для загрузки:
#nano /pxe/pxelinux.cfg/default
DEFAULT menu.c32
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
TIMEOUT 30
MENU TITLE PXE Boot Menu
label Loading from HDD
localboot 0x80
label Clonezilla
MENU LABEL Clonezilla Live
kernel images/clonezilla/vmlinuz1
append initrd=images/clonezilla/initrd1.img boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run=»ocs-live-general» ocs_live_extra_param=»» ocs_live_keymap=»» ocs_live_batch=»no» ocs_lang=»» vga=788 nosplash fetch=tftp://192.168.0.1/pxe/images/clonezilla/filesystem.squashfs
(Заметьте append и все что дальше это одна строчка)
Практически все готово, остается совсем немного, устанавливаем nfs сервер
#apt-get install nfs-common
и добавляем одну строчку в файлик /etc/exports
#nano /etc/exports
/pxe/images *(ro,sync,subtree_check)
Все на этом все готово, на всякий пожарный перезапускаем наши сервисы и убеждаемся что все хорошо и нет ошибочек:
#/etc/init.d/nfs-kernel-server restart
#/etc/inid.d/dnsmasq restart
Пробуем загрузится через сеть (не забудьте проверить что iptables не блокирует данные действия с внутренним интерфейсом)
Если возникли вопросы, пищите в комментариях, обязательно помогу.
UPD: NFS сервер ставить не обязательно, в данном пример clonezilla использует чисто tftp, однако для загрузки других систем nfs сервер очень даже пригодится
Привет! При попытки настройки загрузки Clonezilla через PXE, DHCP адрес выдает, ядро и образ грузятся нормально , но в итоге Вываливается сообщение BOOT FAILED! This Debian Live image failed to boot. *******тут много всякой фигни****** live-boot wil now start a shell. The error message was: Unable to find a live file system on the network и выкидывает в оболочку (initramfs).
Подскажи в чем может быть загвоздка!
Заранне благодарю!
видимо косяк в строчке append initrd, и скорее всего в tftp://192.168.0.1/pxe/images/clonezilla/filesystem.squashfs
покажите последние строк 10, это будет более информативно
DEFAULT menu.c32
PROMPT 0
NOESCAPE 0
ALLOWOPTIONS 0
TIMEOUT 60
MENU TITLE PXE Boot Menu
label Loading from HDD
localboot 0×80
label Clonezilla
MENU LABEL Clonezilla Live
kernel images/clonezilla/vmlinuz
append initrd=images/clonezilla/initrd.img boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run=»ocs-live-general» ocs_live_extra_param=»» ocs_live_keymap=»» ocs_live_batch=»no» ocs_lang=»» vga=788 nosplash fetch=tftp://10.46.69.10/tftpboot/images/clonezilla/filesystem.squashfs
на ковычки не смотри на сервере все нормально просто криво скопипастилось!
а попробовать скачать файл tftp://10.46.69.10/tftpboot/images/clonezilla/filesystem.squashfs если получается?
Да все прекрасно скачивается!
tftp> get images/clonezilla/filesystem.squashfs
Received 112579886 bytes in 58.1 seconds
tftp>
что то пути какие то разные
tftp> get images/clonezilla/filesystem.squashfs
и
fetch=tftp://10.46.69.10/tftpboot/images/clonezilla/filesystem.squashfs
???
если с путями точно все нормально как вариант попробовать так
kernel vmlinuz1
append initrd=initrd1.img boot=live live-config noswap nolocales edd=on nomodeset ocs_live_run=»ocs-live-general» ocs_live_extra_param=»» ocs_live_keymap=»» ocs_live_batch=»no» ocs_lang=»» vga=788 nosplash fetch=tftp://10.46.69.10/tftpboot/images/clonezilla/filesystem.squashfs
У меня нет файлов vmlinuz1 и initrd1.img, у меня просто vmlinuz и initrd.img!
долгое курение манов и проблемма решена! спасибо за участие
вот правильная строка:
append initrd=image/clonezilla/initrd.img boot=live union=aufs ramdisk_size=65536 noswap nolocales edd=on vga=791 nosplash BOOT_IMAGE=image/clonezilla/vmlinuz ocs_live_run=»ocs-live-general» ocs_live_extra_param=»» ocs_live_keymap=»» ocs_lang=»» fetch=tftp://10.46.69.10/images/clonezilla/filesystem.squashfs
Поздравляю с решением =)