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 не блокирует данные действия с внутренним интерфейсом)

Если возникли вопросы, пищите в комментариях, обязательно помогу.

11 комментариев к записи “PXE Clonezilla – сервер для backup’ов”

  1. UPD: NFS сервер ставить не обязательно, в данном пример clonezilla использует чисто tftp, однако для загрузки других систем nfs сервер очень даже пригодится

  2. Александр:

    Привет! При попытки настройки загрузки 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).
    Подскажи в чем может быть загвоздка!
    Заранне благодарю!

  3. видимо косяк в строчке append initrd, и скорее всего в tftp://192.168.0.1/pxe/images/clonezilla/filesystem.squashfs

    покажите последние строк 10, это будет более информативно

  4. Александр:

    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

  5. Александр:

    на ковычки не смотри на сервере все нормально просто криво скопипастилось!

  6. а попробовать скачать файл tftp://10.46.69.10/tftpboot/images/clonezilla/filesystem.squashfs если получается?

  7. Александр:

    Да все прекрасно скачивается!

    tftp> get images/clonezilla/filesystem.squashfs
    Received 112579886 bytes in 58.1 seconds
    tftp>

  8. что то пути какие то разные
    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

  9. Александр:

    У меня нет файлов vmlinuz1 и initrd1.img, у меня просто vmlinuz и initrd.img!

  10. Александр:

    долгое курение манов и проблемма решена! спасибо за участие

    вот правильная строка:
    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

  11. Поздравляю с решением =)

Прокомментировать

XHTML: Вы можете использовать эти тэги для форматирования текста: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>