рдХрд╣рд╛рдиреА
рдПрдХ рдмрд╛рд░ рд╣рдореЗрдВ 2 рдЯреАрдмреА рдХреЗ 14 рд╣рд╛рд░реНрдб рдбреНрд░рд╛рдЗрд╡ рдХреЗ рд╕рд╛рде (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рд╕реНрд╡рдпрдВ рдирд╣реАрдВ ...) рд╕рд░реНрд╡рд░ рдорд┐рд▓рд╛ред рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдЫрд╛рдкреЗ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рдмрд╛рдж (рдХреНрдпреЛрдВ - рдПрдХ рдЕрд▓рдЧ рдореБрджреНрджрд╛), рд╣рдордиреЗ рд╡рд┐рднрд╛рдЬрди рдХреЗ рд╕рд╛рде рдЙрдкрджреНрд░рд╡ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдирдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред рдбрд┐рд╕реНрдХреНрд╕ рдХреЛ iSCSI рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдерд╛, рдФрд░ рдореИрдВ рдХреБрдЫ рдбрд┐рд╕реНрдХ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд╕рд┐рд╕реНрдЯрдо рдбрд┐рд╕реНрдХ, рдФрд░ рдХреБрдЫ рдФрд░ рд╕рдм рдХреБрдЫ рдХреЗ рд▓рд┐рдП рдЖрд╡рдВрдЯрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕рдорд╕реНрдпрд╛ рд░реИрдо рдореЗрдВ рд░реВрдЯ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рдХреЗ рдкреНрд▓реЗрд╕рдореЗрдВрдЯ рдХреЗ рд╕рд╛рде рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдмреВрдЯ рдмрдирд╛рдиреЗ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реБрдИред
рд╕рд┐рджреНрдзрд╛рдВрдд
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕реЗ 3 рдШрдЯрдХреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ - рдХрд░реНрдиреЗрд▓, рдЗрдирдЯреНрд░рд╛рдореНрд░рд╛рдореНрд╕ рдХрд╛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╡рд╛рддрд╛рд╡рд░рдг рдФрд░ рд░реВрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
рдЕрднреНрдпрд╛рд╕
Ubuntu рд╕рдЯреАрдХ рдХреЗ рд╕рд╛рде рдХрд╛рд░ рджреНрд╡рд╛рд░рд╛ рд╕рднреА рдХрд╛рд░реНрдп рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред
PXE
рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, PXE рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред рдЗрд╕ рд╡рд┐рд╖рдп рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореИрдиреБрдЕрд▓ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХреЗрд╡рд▓ рд╕рд╛рд░ рдмрддрд╛рдКрдВрдЧрд╛ред
рд╣рдо рдЖрдкрдХреЗ рдкрд╕рдВрджреАрджрд╛ dhcp рд╕рд░реНрд╡рд░ рдХреЛ рд░рдЦрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, isc-dhcp-server, рдЬреЛ рдорд╢реАрдиреЛрдВ рдХреЛ рдЖрдИрдкреА рдкрддреЗ рд╡рд┐рддрд░рд┐рдд рдХрд░реЗрдЧрд╛ рдФрд░ pxelinux.0 рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрде рдЗрдВрдЧрд┐рдд рдХрд░реЗрдЧрд╛ рдЬреЛ tftp рд╕рд░реНрд╡рд░ (tftp-ht рдпрд╛ atftp) рджреЗрдЧрд╛ред
aptitude install isc-dhcp-server tftpd-hpa
Dhcp рд╕рд░реНрд╡рд░ рдХреЙрдиреНрдлрд┐рдЧ рдХрд╛ рдЙрджрд╛рд╣рд░рдгред рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, pxe рд╕рд░реНрд╡рд░ 10.0.0.1 рдкрд░ рд╕реНрдерд┐рдд рд╣реИред
option domain-name-servers 8.8.8.8; server-name "pxe"; subnet 10.0.0.0 netmask 255.255.255.0 { range dynamic-bootp 10.0.0.2 10.0.0.10; option subnet-mask 255.255.255.0; option routers 10.0.0.1; option root-path "10.0.0.1:/var/lib/tftpboot/"; filename "pxelinux.0"; }
рд╣рдо tftp рд╕рд░реНрд╡рд░ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ (рдЙрдмрдВрдЯреВ рдореЗрдВ рдЗрд╕рдХреА рдПрдХ рдЗрдирдЗрдЯ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЗрд╕реЗ inetd / xinetd рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреА рдЪрд▓рд╛рдирд╛ рд╣реЛрдЧрд╛)ред
рд╣рдо рдкреНрд░рджрд░реНрд╢рди рдХреА рдЬрд╛рдВрдЪ рдХрд░рддреЗ рд╣реИрдВред рд╣рдордиреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ / var / lib / tftpboot рдореЗрдВ рд░рдЦрд╛ рдФрд░ tftp рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЦреАрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ред
tftp 10.0.0.1 tftp> get pxelinux.0
рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ рдХрд┐ рдЖрдкрдХреЛ pxelinux.0 рдлрд╝рд╛рдЗрд▓ рдХрд╣рд╛рдБ рдорд┐рд▓рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдмреВрдЯрд▓реЛрдбрд░ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╣рдо рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдЖрдЧреЗ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рдЖрдк рдмреВрдЯрд▓реЛрдбрд░ рдореЗрдВ рдПрдХ рд╕реБрдВрджрд░ рдореЗрдиреВ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░рд╛ pxelinux.cfg / default рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ
default vesamenu.c32 aprompt 1 timeout 2 label ubuntu 12.04 menu label Ubuntu precise kernel vmlinuz append initrd=initrd.img boot=ram rooturl=http://10.0.0.1/rootfs.squashfs ip=dhcp
rootfs
рд╣рдо рдбреАрдмреВрдЯрд╕реНрдЯреНрд░реИрдк рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд░реВрдЯрдлрд╝реНрд╕ рдЫрд╡рд┐ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЖрд╡рд╢реНрдпрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдиреЗрдЯрд╡рд░реНрдХ, рд╣реЛрд╕реНрдЯрдирд╛рдо, рдлрд╝рд╛рдпрд░рд╡реЙрд▓ рдЖрджрд┐ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ, рд╣рдо рдЬрд┐рддрдиреА рдЕрдзрд┐рдХ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЙрддрдиреА рд╣реА рдмрдбрд╝реА рдЫрд╡рд┐ рд╣реЛрддреА рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ рд░реВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрджрд▓рдирд╛ рди рднреВрд▓реЗрдВред
mkdir -p /mnt/rootfs debootstrap precise /mnt/rootfs/ http://mirror.yandex.ru/ubuntu/ chroot /mnt/rootfs /bin/bash aptitude install vim ...
рд╣рдорд╛рд░реЗ рдиреНрдпреВрдирддрдо рд╕реЗрдЯ рдХреЗ рд╕рд╛рде, рд╕рд┐рд╕реНрдЯрдо 200 рдПрдордмреА рд╡рдЬрди рдХрд╛ рдирд┐рдХрд▓рд╛ред
initramfs
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдЕрдкрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдмреВрдЯ рд╕рд░реНрд╡рд░ рдкрд░ рд╕реНрдерд┐рдд рд╡реЗрдм рд╕рд░реНрд╡рд░ рд╕реЗ рд░реВрдЯ fs рдХреА рдЗрдореЗрдЬ рд▓реЗрдВрдЧреЗ, рдЬреЛ рдХрд┐ 10.0.0.1 рдкрд░ рд╣реИред рд╕рдорд╛рдзрд╛рди рдЗрддрдирд╛ рд╕рд░рд▓ рдерд╛ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ initramfs рдореЗрдВ wget рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдереАред рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рдмрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдордиреЗ рдЫрд╡рд┐ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ред рдпрд╣ рдПрдХ рдирд┐рдпрдорд┐рдд рдЯрд╛рд░ рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рд╕реНрдХреНрд╡рд╛рд╢рдл рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдЬрдм рд╕реЗ рдЖрдорддреМрд░ рдкрд░ рдЯрд╛рд░ рдЗрдирд┐рдЯрд░рд╛рдордл рдореЗрдВ рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рджреВрд╕рд░реА рдУрд░, рдХреБрдЫ рднреА рдЗрд╕реЗ рд╡рд╣рд╛рдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рд╕реЗ рд░реЛрдХрддрд╛ рд╣реИред
рд╕реНрдХреНрд╡реИрд╢рдПрдлрдПрд╕рд╕реНрдХреНрд╡рд╛рд╢рдлрд╝реЙрдлрд╝ рдПрдХ рд╕рдВрдкреАрдбрд╝рди рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рд╣реИ рдЬрд┐рд╕реЗ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 2.6.29 рдХреЗ рдмрд╛рдж рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЗрд╕рдХреА рдорджрдж рд╕реЗ, рдЖрдк рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдбрд┐рд╡рд╛рдЗрд╕ рдХреЛ рд▓реВрдк рдкрд░ рдорд╛рдЙрдВрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ; рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЬрдм рд╕реЗ рдЖрдк рд╕реНрдХреНрд╡рд╛рд╢рдл рдкрдврд╝рддреЗ рд╣реИрдВ, рдЖрдк рдЖрд░реНрдХрд╛рдЗрд╡ рд╕реЗ рдкрдврд╝рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реАрдкреАрдпреВ рдкрд░ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рднрд╛рд░ рджреЗрддрд╛ рд╣реИред
mksquashfs /mnt/rootfs/ rootfs.squashfs -noappend -always-use-fragments du -hs rootfs.squashfs 92M rootfs.squashfs
рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рд▓рд┐рдП, рдЖрдк-рдХреЙрдореНрдкрд▓реЗрдХреНрд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдВрдкреАрдбрд╝рди рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, gzip рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдЕрдЧрд▓рд╛, рдЖрдкрдХреЛ рд░реВрдЯ рдЗрдореЗрдЬ рд▓реЗрдиреЗ рдФрд░ рд░реИрдо рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП initramfs рд╕реЗ init рд╕рд┐рдЦрд╛рдирд╛ рд╣реЛрдЧрд╛ред
init initramfs рдПрдХ sh рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реИ рдЬреЛ cmdline рд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░рддреА рд╣реИ, fts рдХреЛ mounts рдХрд░рддреА рд╣реИ, switch_root рдмрдирд╛рддреА рд╣реИ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреА рдореБрдЦреНрдп init рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░рддреА рд╣реИред
рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ рдФрд░ cmdline рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рд╡рд┐рдХрд▓реНрдк рдЬреЛрдбрд╝реЗрдВрдЧреЗред рд╣рдо рдПрдХ рд░рд╛рдо рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд▓рд┐рдЦрддреЗ рд╣реИрдВ рдЬрд┐рд╕реЗ рдмреВрдЯ = рд░реИрдо рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рд╣реЛрдиреЗ рдкрд░ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
vim / usr / share / initramfs-tools / script / ram
рд░реВрдЯрд░реНрд▓ рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рдпрд╣ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд░реВрдЯ fs рдЗрдореЗрдЬ рдХрд╣рд╛рдВ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред рд╕реНрдХреНрд╡реИрд╢ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдХрд░реНрдиреЗрд▓ рдореЗрдВ рд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо /etc/initramfs-tools/initramfs.conf BOOT = ram рдореЗрдВ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ initrfs рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ
mkinitramfs -o /var/lib/tftpboot/initrd.img
рд╣рдо рдорд╢реАрди рдХреЛ рдЪрд╛рд▓реВ рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВрдЧреЗ, рдФрд░ рджреЗрдЦреЗрдВрдЧреЗ рдХрд┐ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИред рдПрдХ рд╕рдлрд▓ рдмреВрдЯ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдПрдХ рдбрд┐рд╕реНрдХрд▓реЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдорд┐рд▓рд╛, рдЬрд┐рд╕рдореЗрдВ рд▓рдЧрднрдЧ 300 рдПрдордмреА рдореЗрдореЛрд░реА рд╣реЛрддреА рд╣реИ, рдФрд░ рд╣рдо рдЗрд╕реЗ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж, рд╕рд┐рд╕реНрдЯрдо рдЕрдкрдиреЗ рдореВрд▓ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╡рд╛рдкрд╕ рдЖ рдЬрд╛рдПрдЧрд╛ред
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдордиреЗ рдХреЗрд╡рд▓ рдЫрд╡рд┐ рдХреЛ рд╕рдВрдкреАрдбрд╝рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрдХреНрд╡рд╛рд╢рдлрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╣рдо рд╕реНрдХреНрд╡реИрд╢ рдореЗрдВ рд░реВрдЯ рд╡рд┐рднрд╛рдЬрди рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦреЗрдВ рдХрд┐ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ? рд╣рдо рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдмрджрд▓рддреЗ рд╣реИрдВ, do_rammount () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ рд╣рдо рдХреЗрд╡рд▓ рдмрдврд╝рддреЗ рд╕реНрдХреНрд╡реИрд╢ рдХреЛ рдЫреЛрдбрд╝рддреЗ рд╣реИрдВред
do_rammount() { log_begin_msg "Configuring networking" configure_networking log_end_msg log_begin_msg "Downloading rootfs image" mkdir -p /tmp/squashfs wget ${rooturl} -O /tmp/squashfs/rootfs.squashfs log_end_msg log_begin_msg "Mounting rootfs image to /mnt/squashfs" mkdir -p /mnt/squashfs mount -t squashfs -o loop /tmp/squashfs/rootfs.squashfs ${rootmnt} log_end_msg }
рд╣рдо initramfs рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рджреЗрдЦрддреЗ рд╣реИрдВред рд╕рд┐рд╕реНрдЯрдо рд░реЛ рдореЛрдб рдореЗрдВ рдмреВрдЯ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рд▓рдЧрднрдЧ 180MB рдореЗрдореЛрд░реА рд▓рдЧрддреА рд╣реИред
рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдЖрд░рдУ рдореЛрдб рдореЗрдВ рдорд╛рдЙрдВрдЯрд┐рдВрдЧ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрдВ рд╢реЛрднрд╛ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рднреА рд░реИрдо рдХреЛ рдРрд╕реЗ рд╣реА рдмрд░реНрдмрд╛рдж рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рд╣рд▓ Aufs рдХреА рдорджрдж рд╕реЗ рдорд┐рд▓рд╛ред
AufsAufs рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреИрд╕реНрдХреЗрдб-рдорд╛рдЙрдВрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ - рд░реАрдб-рдУрдирд▓реА рдореЛрдб рдореЗрдВ рдПрдХ рдФрд░ рдЖрд░рдбрдмреНрд▓реНрдпреВ рдореЗрдВ рдПрдХред рдпрд╣ рдХреЙрдкреА-рдСрди-рд░рд╛рдЗрдЯ рдореЛрдб рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЕрд░реНрдерд╛рдд, рд╕рднреА рдмрджрд▓рд╛рд╡ рдЖрд░рдбрдмреНрд▓реНрдпреВ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд▓рд┐рдЦреЗ рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЙрд╕рд╕реЗ рд░реАрдбрд┐рдВрдЧ рдХреА рдЬрд╛рддреА рд╣реИред
рд╣рдо рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрддреЗ рд╣реИрдВред
рдорд╛рдЙрдВрдЯрд░реЙрдЯ () рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ, рдЬреЛрдбрд╝реЗрдВ
log_begin_msg "Loading module aufs" modprobe aufs log_end_msg
рдФрд░ do_rammount () рдлрд╝рдВрдХреНрд╢рди рдирд┐рдореНрди рд░реВрдк рдореЗрдВ рдШрдЯрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
do_rammount() { log_begin_msg "Configuring networking" configure_networking log_end_msg log_begin_msg "Downloading rootfs image" mkdir -p /tmp/squashfs wget ${rooturl} -O /tmp/squashfs/rootfs.squashfs log_end_msg log_begin_msg "Mounting rootfs image to /mnt/ro" mkdir -p /mnt/ro mount -t squashfs -o loop /tmp/squashfs/rootfs.squashfs /mnt/ro log_end_msg log_begin_msg "Mounting tmpfs to /mnt/rw" mkdir -p /mnt/rw mount -t tmpfs -o size=1G none /mnt/rw log_end_msg log_begin_msg "Mounting aufs to /mnt/aufs" mkdir -p /mnt/aufs mount -t aufs -o dirs=/mnt/rw=rw:/mnt/ro=ro aufs /mnt/aufs log_end_msg [ -d /mnt/aufs/mnt/ro ] || mkdir -p /mnt/aufs/mnt/ro [ -d /mnt/aufs/mnt/rw ] || mkdir -p /mnt/aufs/mnt/rw mount --move /mnt/ro /mnt/aufs/mnt/ro
рд╣рдо initramfs рдХрд╛ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╣реИрдВ, рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рджреЗрдЦрддреЗ рд╣реИрдВред рд╕рд┐рд╕реНрдЯрдо 181MB рдореЗрдореЛрд░реА рд▓реЗрддрд╛ рд╣реИ, рдЬрдмрдХрд┐ рд╣рдо рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ, рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЕрд▓рдЧ-рдЕрд▓рдЧ / mnt / rw рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдФрд░ рд╕рд┐рд╕реНрдЯрдо рд╕реНрд╡рдпрдВ / mnt / ro рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИред
рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдПрдХ рдРрд╕реА рдкреНрд░рдгрд╛рд▓реА рдорд┐рд▓реА рдЬреЛ рдиреЗрдЯрд╡рд░реНрдХ рдкрд░ рднрд░реА рд╣реБрдИ рд╣реИ, рдереЛрдбрд╝реА рдорд╛рддреНрд░рд╛ рдореЗрдВ рдореЗрдореЛрд░реА рд▓реЗрддреА рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рд░рд┐рдмреВрдЯ рдХреЗ рдмрд╛рдж рд╕рднреА рдкрд░рд┐рд╡рд░реНрддрди рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ (рдЗрд╕рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕рд┐рд╕реНрдЯрдо рдХреЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╕реНрдерд╛рди рдкрд░ рдкреВрд░реНрд╡-рд╕рдВрдЧреНрд░рд╣ рдХрд░рдирд╛ рд╣реЛрдЧрд╛)ред
рдЙрдкрд░реЛрдХреНрдд рд╕рднреА рд╡рд┐рдзрд┐рдпреЛрдВ рдореЗрдВ рдЬреАрд╡рди рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рд╣реИред рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдЖрдкрдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкрдврд╝рдирд╛ / рд╕реБрдирдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рджрд┐рд▓рдЪрд╕реНрдк рд╣реЛрдЧрд╛ред
рдЖрдкрдХрд╛ рдзреНрдпрд╛рди рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╕рдВрджрд░реНрдн
рдЙрдмрдЯрди рдмреВрдЯ рд░рд╛рдо рдХреЛрд╕реНрдХреНрд╡рд╛рд╢рдлрд╝реЗрдлрд╝ рд╣реЛрдо рдкреЗрдЬPXE