ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ืฉืœื•ื ืœื›ื•ืœื!

ืžืืžืจ ื–ื” ืžืชืืจ ืืช ื”ืฉืœื‘ื™ื ืฉืขืœื™ืš ืœื‘ืฆืข ื›ื“ื™ ืœื”ื•ืกื™ืฃ ื™ื›ื•ืœืช ืืชื—ื•ืœ UEFI ืœ-WDS ืฉืœืš.

ื”ึธื”ึตืŸ. ื”ื”ื•ืจืื•ืช ื‘ืžืืžืจ ื–ื” ืžื ื™ื—ื•ืช ืฉื›ื‘ืจ ื™ืฉ ืœืš ืืช ื”ืชืฆื•ืจื” ื”ื‘ืื”:

1. Windows Server 2012R2 (ะธะปะธ ะฝะพะฒะตะต)
2. ะŸะพะปะฝะพัั‚ัŒัŽ ะฝะฐัั‚ั€ะพะตะฝะฝั‹ะน DHCP ะดะปั ั€ะฐะฑะพั‚ั‹ ั WDS
3. ะกะพะฑัั‚ะฒะตะฝะฝะพ ัะฐะผ WDS
4. IIS
5. ะ’ะธั€ั‚ัƒะฐะปัŒะฝะฐั ะผะฐัˆะธะฝะฐ ะธะปะธ ะŸะš ั Ubuntu

ื›ืžื• ื›ืŸ, ื›ืืŸ ืžืชื•ืืจื•ืช ืคืขื•ืœื•ืช ืฉืœื ื”ื‘ื™ืื• ืœื™ ืืช ื”ืชื•ืฆืื” ื”ืจืื•ื™ื”.
ืชื™ืืจืชื™ ืื•ืชื ื›ื“ื™ ืœื”ืงืœ ืขืœ ื”ื—ื™ืคื•ืฉ ื•ืœื—ืกื•ืš ืœืš ื–ืžืŸ.

ืคึฐึผืชึดื™ื—ึท

ืขืฉื™ืชื™ WDS ื‘ืขื‘ื•ื“ื” ืขื ื”ืจื‘ื” ื“ื‘ืจื™ื ื˜ื•ื‘ื™ื, tk. ื ืžืืก ื›ืœ ื”ื–ืžืŸ ืœื”ืชืจื•ืฆืฅ ืขื ื—ื‘ื•ืจื” ืฉืœ ื›ื•ื ื ื™ ื”ื‘ื–ืง ื•ืœื“ืจื•ืก ืื•ืชื.

ื”ืžืืžืจื™ื ื”ืืœื” ืขื–ืจื• ืœื™ ืื’ื‘:
ื”ื•ืกืคืช WDS ืฆื“ื“ื™ื•ืช
ืชืคืจื™ื˜ ื”ืืชื—ื•ืœ ืฉืœ PXE ืขื System Center Configuration Manager


ื–ื” ื ืจืื” ื›ืžื• ื–ื”

ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ื•ื”ื›ืœ ื”ื™ื” ื‘ืกื“ืจ, ืชืžื•ื ื•ืช ื—ื“ืฉื•ืช ื ื•ืกืคื• ืœื˜ืขื™ื ื”, ืชืžื•ื ืช winPE ืจื›ืฉื” ืชื›ื•ื ื•ืช ื—ื“ืฉื•ืช ื•ื”ื›ืœ ืขื‘ื“.

ืื‘ืœ, ืจื—ื•ืง ืžื›ืœ ื”ืžื›ืฉื™ืจื™ื ืชื•ืžื›ื™ื ื‘ืžืฆื‘ ื”ืืชื—ื•ืœ ืฉืœ BIOS / Legacy, ืื• ืื ื›ืŸ, ืื– ื”ื›ืœืœืชื• ืขืฉื•ื™ื” ืœื”ื™ื•ืช ื‘ืžืงื•ื ืžืื•ื“ ืœื ืžื•ื‘ืŸ ืžืืœื™ื•.

ื›ืŸ, ื•ื”ืชืงื ืช ื—ืœื•ื ื•ืช ื‘ืžืฆื‘ ืžื“ื•ืจ ืงื•ื“ื, ื›ืฉืืคืฉืจ ืœื”ืชืงื™ืŸ ื‘-UEFI, ื–ื” ืœื ืžื’ื ื™ื‘.

ื›ืชื•ืฆืื” ืžื›ืš, ื”ื—ืœื˜ืชื™ ืœื”ื•ืกื™ืฃ ืืช ื”ื™ื›ื•ืœืช ืœืืชื—ืœ ืœ-UEFI, ื•ื”ืœื›ืชื™ ืœื’ื•ื’ืœ.

ืื‘ืœ ืœื ืžืฆืืชื™ ืžื™ื“ืข ืžื•ื‘ื ื” ืขืœ ืื™ืš ืœื”ืฉื™ื’ WDS + UEFI ืขื•ื‘ื“.
ืœืžืขืฉื”, ื–ื• ื”ืกื™ื‘ื” ืฉื”ื—ืœื˜ืชื™ ืœื›ืชื•ื‘ ืืช ื”ืžืืžืจ ื”ื–ื”.

ืœืคื ื™ ืฉืืชื—ื™ืœ, ืืชืืจ ืืช ื”ื‘ืขื™ื” ืฉืœืงื—ื” ื”ื›ื™ ื”ืจื‘ื” ื–ืžืŸ.

ื‘ืขืช ื”ื•ืกืคืช UEFI ืœ-WDS, ื”ืžืฆื‘ ื”ื‘ื, ื“ื™ ืœื ื‘ืจื•ืจ, ืืคืฉืจื™:

ืื ืืชื” ืžื•ืกื™ืฃ ืงื•ื‘ืฅ ืืชื—ื•ืœ ืœ-WDS ื•ื›ืืฉืจ ืืชื” ืžื ืกื” ืœืืชื—ืœ ื‘ืžื›ืฉื™ืจ
ื‘-UEFI ืืชื” ืจื•ืื” ืืช ื”ื˜ืงืกื˜ ื”ื‘ื:
The selected boot device failed. Press <Enter> to Continue.
ืื• Boot Device Not Found
ืื‘ืœ ื˜ืขื™ื ื” ืžื“ื•ืจ ืงื•ื“ื ืขื•ื‘ื“ืช ื‘ืฉื‘ื™ืœืš.
ื•ืื– ืื—ืช ื”ืืคืฉืจื•ื™ื•ืช ื”ืืคืฉืจื™ื•ืช ื”ื™ื ื”ื™ืขื“ืจ ืงื•ื‘ืฅ wdsmgfw.efi,
ืœืื•ืจืš ื”ืฉื‘ื™ืœ ื”ื‘ื: %WDSpath%Bootx64wdsmgfw.efi

ืืชื” ื™ื›ื•ืœ ืœืงื—ืช ืืช ื–ื” ื›ืืŸ: C:WindowsSystem32RemInstbootx64wdsmgfw.efi
ืœื—ืœื•ืคื™ืŸ, ืื ืžืกื™ื‘ื” ื›ืœืฉื”ื™ ื”ืงื•ื‘ืฅ ื”ื–ื” ื—ืกืจ ืœืš, ืคืจืกืžืชื™ ืื•ืชื• google.
ืขืœ ื”ืคืชืจื•ืŸ ื”ื–ื”, ืชื•ื“ื” ื—ื‘ืจ'ื” ืž reddit.

ืขื ื”ื‘ืขื™ื” ื”ื–ื•, ื”ืจื’ืชื™ ื”ื›ื™ ื”ืจื‘ื” ื–ืžืŸ, ื›ื™. ื—ืฉื‘ืชื™ ืฉื”ื‘ืขื™ื” ื”ื™ื ืื™ืคืฉื”ื• ื‘ืชืฆื•ืจืช WDS ืื• DHCP.

ื”ื’ื“ืจืช ืžื“ื™ื ื™ื•ืช ืขืœ ื™ื“ื™ ื”ื•ืกืคืช ืžื—ืœืงื•ืช ืกืคืงื™ื ืขื‘ื•ืจ ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ืฉื•ื ื•ืช, ื•ื”ื’ื“ืจืช ืืคืฉืจื•ื™ื•ืช DHCP 060, 066, 067. ื”ื•ืจืื” ืœื”ื’ื“ืจืช ืžื“ื™ื ื™ื•ืช DHCP.

ืืจื›ื™ื˜ืงื˜ื•ืจื•ืช ื‘-ASCII ืœื”ื’ื“ืจืช DHCP

PXEClient:Arch:00000 - BIOS/Legacy
PXEClient:Arch:00006 - UEFI x86
PXEClient:Arch:00007 - UEFI x64

ื›ืžื• ื›ืŸ, ื ื™ืกื™ืชื™ ืืคืฉืจื•ื™ื•ืช ืฉื•ื ื•ืช ืขื‘ื•ืจ ืงื‘ืฆื™ ืืชื—ื•ืœ. .efi

  • syslinux
  • ื’ืจืื‘ 2

ื ื™ืกื™ืชื™ ื’ื ืœืžืฆื•ื ืืช ื”ื‘ืขื™ื” ื‘ื™ื•ืžืŸ ื”ืื™ืจื•ืขื™ื.
win + r -> eventvwr -> ะ–ัƒั€ะฝะฐะปั‹ ะฟั€ะธะปะพะถะตะฝะธะน ะธ ัะปัƒะถะฑ -> Microsoft -> Windows -> Deployment-Services-Diagnostics

ืื‘ืœ, ื›ืคื™ ืฉืืžืจืชื™ ืœืžืขืœื”, ื”ื‘ืขื™ื” ื˜ืžื•ื ื” ื‘ืงื•ื‘ืฅ wdsmgfw.efi.
ืื• ืฉื‘ื˜ืขื•ืช ืžื—ืงืชื™ ืื•ืชื• ื‘ืขืฆืžื™, ืื• ืฉื”ื•ื ืœื ื”ื•ืขืชืง ื‘ืžื”ืœืš ื”ื”ืชืงื ื”
ื•ื”ื’ื“ืจืช WDS.

ื•ื‘ื›ืŸ, ื‘ื•ืื• ื ืชื—ื™ืœ!

ื”ื•ืจืื”

ืฉืœื‘ 1 - ื•ื“ื ืฉ-WDS ืขื•ื‘ื“

ืงื— ื›ืœ ืžื›ืฉื™ืจ ืื• ืžื›ื•ื ื” ื•ื™ืจื˜ื•ืืœื™ืช ืขื ืชืžื™ื›ื” ื‘ืืชื—ื•ืœ ื‘ืžืฆื‘ UEFI ื“ืจืš ื”ืจืฉืช ื•ื ืกื” ืœืืชื—ืœ.

ืืชื” ืืžื•ืจ ืœืงื‘ืœ ืืช ื”ืชืžื•ื ื” ื”ื‘ืื”:

ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ืื ื›ืŸ, ืžืฆื•ื™ืŸ, ืืชื” ื™ื›ื•ืœ ืœื”ืžืฉื™ืš.
ืื ืœื, ืื– ืจืื” ืžื” ื›ืชื‘ืชื™ ื‘ื”ืงื“ืžื”.

ืฉืœื‘ 2 - ื‘ื ื™ื™ืช ืงื•ื‘ืฅ ื”ืืชื—ื•ืœ iPXE

ืื ื• ืžืฉื™ืงื™ื ืื•ื‘ื•ื ื˜ื• ืžื•ื›ื ื” ืžืจืืฉ, ืคื•ืชื—ื™ื ืžืกื•ืฃ ื•ืžื“ื‘ื™ืงื™ื ืืช ื”ืฉื•ืจื” ื”ื–ื•:

git clone https://git.ipxe.org/ipxe.git ipxe

ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ื›ืืŸ ื‘ืจืฆื•ื ื™ ืœื”ืขื™ืจ ื”ืขืจื” ืงื˜ื ื” ืฉืื•ืœื™ ืชืฆื˜ืจืš ืœื”ื•ืกื™ืฃ ื—ื‘ื™ืœื•ืช ืœืื•ื‘ื•ื ื˜ื• ื”ื ื—ื•ืฆื•ืช ืœื”ื™ื“ื•ืจ C ื•-C++.
ืคืฉื•ื˜ ื”ืชืงื ืชื™ ืื•ืชื.

ื”ื•ืจื“? - ื’ื“ื•ืœ!
ื›ืขืช ืขืœื™ืš ืœื™ืฆื•ืจ ืงื•ื‘ืฅ ืชืฆื•ืจื” ืขื‘ื•ืจ ื”ืžื›ืœื•ืœ.
ื‘ื˜ืจืžื™ื ืœ ืื ื• ื›ื•ืชื‘ื™ื:

cd ipxe/src
gedit chain.ipxe

ื•ื”ื“ื‘ืง ืืช ื”ืงื•ื“ ื”ื‘ื ื‘ืงื•ื‘ืฅ ื”ื–ื”, ื•ืœืื—ืจ ืžื›ืŸ ืฉืžื•ืจ:

#!ipxe

dhcp
chain http://%IP-address-your-IIS-server%/install.ipxe

ืื ื—ื ื• ื—ื•ื–ืจื™ื ืœืžืกื•ืฃ ื•ืžืชื—ื™ืœื™ื ืืช ื”ืงื•ืžืคื™ืœืฆื™ื”:

make bin-x86_64-efi/ipxe.efi EMBED=chain.ipxe

ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ืื ื”ื›ืœ ืชืงื™ืŸ, ืื– ืืชื” ืืžื•ืจ ืœืงื‘ืœ ืืช ื”ืคืœื˜ ื”ื‘ื ื‘ื˜ืจืžื™ื ืœ:

ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ื•ืชื™ืง ipxe.efi, ื‘ื“ืจืš: ipxe/src/bin-x86_64-efi/ipxe.efi
ืื ืžืกื™ื‘ื” ื›ืœืฉื”ื™ ืื™ื ืš ื™ื›ื•ืœ ืœื‘ืฆืข ืงื•ืžืคื™ืœืฆื™ื” ื‘ืขืฆืžืš,
ืฆื™ืจืคืชื™ ืืช ืฉืœื™ ั„ะฐะนะป.
ื”ื•ื ืžื•ืจื›ื‘ ืœืืชื—ื•ืœ ืžืžื ื• http://192.168.0.100/install.ipxe

ื–ื” ื”ื›ืœ ืขื‘ื•ืจ ืื•ื‘ื•ื ื˜ื•.

ืฉืœื‘ 3 - ื”ื•ืกืคืช ipxe.efi ืœ-WDS

ืื ื—ื ื• ืœื•ืงื—ื™ื ืืช ื”ืงื•ื‘ืฅ ืฉืงื™ื‘ืœื ื• ื‘ืฉืœื‘ ื”ืฉื ื™ ื•ืžืขืชื™ืงื™ื ืื•ืชื• ื‘ื“ืจืš:
%WDSpath%Bootx64%your-boot-folder%EFIBOOT
ืœืื—ืจ ืฉื ืฉื ื” ืืช ืฉืžื• ืœ-BOOTX64.EFI.
ื–ื” ืœื ื”ื›ืจื—ื™, ื–ื” ืคืฉื•ื˜ ื™ื•ืชืจ ื ื•ื—.

ื•ืื– ืื ื—ื ื• ืžืฉื™ืงื™ื cmd ื‘ืฉื ื”ืžื ื”ืœ, ื•ื›ืชื•ื‘ ืืช ื”ืคืงื•ื“ื•ืช ื”ื‘ืื•ืช:

wdsutil /set-server /bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi
ะธ
wdsutil /set-server /N12bootprogram:Bootx64%your-boot-folder%EFIBOOTBOOTX
64.EFI /architecture:x64uefi

ืคืขื•ืœื” ื–ื• ืชื’ื“ื™ืจ ืืช ื”ืงื•ื‘ืฅ ื”ืžืชืงื‘ืœ ืœื”ื•ืจื“ื” ื‘ืืžืฆืขื•ืช WDS.

ื‘ื•ื ื ื‘ื“ื•ืง ืืช ื”ืชืฆื•ืจื”:

wdsutil /get-server /Show:Config

ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ื”ืขืชืงืชื™ ื’ื ืืช ื”ืงื•ื‘ืฅ ipxe.efi, ืฉื™ื ื™ืชื™ ืืช ืฉืžื• ืœ-BOOTIA32.EFI ื•ื”ื’ื“ืจืชื™ ืขื‘ื•ืจื• ืืชื—ื•ืœ, ืœื™ืชืจ ื‘ื™ื˜ื—ื•ืŸ. architecture:x86uefi
ืื‘ืœ ื‘ื’ื“ื•ืœ, ื–ื” ืœื ื”ื’ื™ื•ื ื™, ื›ื™. ืงื•ื‘ืฅ Bootmgfw.efi ืื™ื ื• ืชื•ืžืš ื‘-x86

ื‘ื•ื ื ื‘ื“ื•ืง ืžื” ืงืจื”.
ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI
ื ื”ื“ืจ, WDS ืฉื•ืœื— ืืช ื”ืงื•ื‘ืฅ ืฉืœื ื• ืœื”ื•ืจื“ื” ื•ื”ื•ื, ื‘ืชื•ืจื•, ืžื—ืคืฉ ืืช ื”ืชืฆื•ืจื” ืœืื•ืจืš ื”ื ืชื™ื‘: http://192.168.0.100/install.ipxe

ืฉืœื‘ 4 - ืชืฆื•ืจืช ืชืคืจื™ื˜

ืขื‘ื•ืจ ืืœ ืชื™ืงื™ื™ืช ื”ืฉื•ืจืฉ ืฉืœ ื”ืืชืจ ืฉืœืš.
ื‘ืจื™ืจืช ื”ืžื—ื“ืœ ื”ื™ื: C:inetpubwwwroot

ืฆื•ืจ ืงื•ื‘ืฅ ื˜ืงืกื˜ install.ipxe.

ื•ืœื”ื’ื“ื™ืจ ืื•ืชื• ื‘ื”ืชืื ืชื™ืขื•ื“ ื•ื”ืฆืจื›ื™ื ืฉืœืš.
ื™ืฉ ื’ื ืฉืคื” ืจื•ืกื™ืช ะพะฟะธัะฐะฝะธะต ืคืงื•ื“ื•ืช.
ืื ื™ ื ื”ื ื™ืชื™ ื–ื” ื”ื•ืจืื•ืช ื‘ืขืช ื”ื’ื“ืจืช ื”-WDS ืฉืœืš.

ื“ื•ื’ืžื” ืœืชืฆื•ืจืช install.ipxe

#!ipxe

:start
menu Please choose an operating system to start/install
item --gap Start Win PE
item WinPE-x64 WinPE x64
item --gap ipxe shell
item shell       Drop to iPXE shell

choose target && goto ${target}

:failed
echo Booting failed, dropping to shell
goto shell

:shell
echo Type 'exit' to get the back to the menu
shell
set menu-timeout 0
set submenu-timeout 0
goto start

:WinPE-x64
kernel http://192.168.0.100/wimboot
initrd http://192.168.0.100/peSE/Boot/bcd
initrd http://192.168.0.100/peSE/Boot/boot.sdi
initrd http://192.168.0.100/peSE/Boot/peSE64.wim
boot || goto failed

ืืชื” ื™ื›ื•ืœ ืœืงืจื•ื ืขืœ ื”ืชืฆื•ืจื” ืœื˜ืขื™ื ืช winPE ื›ืืŸ.

ืฉืœื‘ 5 - ืกื•ื’ื™ MIME

ืœืื—ืจ ื™ืฆื™ืจืช ื”ืชืคืจื™ื˜ ื•ื”ื•ืกืคืช ื›ืœ ื”ืงื‘ืฆื™ื ื”ื“ืจื•ืฉื™ื ืœืชื™ืงื™ื™ืช ื”ืฉื•ืจืฉ ืฉืœ IIS,
ืืชื” ืฆืจื™ืš ืœืชืช ืœื”ื ื’ื™ืฉื”.

ื›ื™ ื’ื ืื ืชื ืกื” ืœื”ื•ืจื™ื“ ืงื•ื‘ืฅ ืžื”ื“ืคื“ืคืŸ, ืชืงื‘ืœ ืฉื’ื™ืื” ื‘ื›ืชื•ื‘ืช ืฉืœื•: HTTP 404.3 - Not Found.
ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ืœืฉื ื›ืš, ืขืœื™ืš ืœื”ื•ืกื™ืฃ ืกื•ื’ื™ MIME ื‘ืœื•ื— ื”ื‘ืงืจื” ืฉืœ IIS, ื‘ื”ืชืื
ืขื ืกื™ื•ืžื•ืช ืงื‘ืฆื™ื ืฉืชื•ืจื™ื“ื• ื“ืจืš http.

ืœื ื—ื™ืคืฉืชื™ ืื™ื–ื” ืกื•ื’ MIME ื”ื›ื™ ืžืชืื™ื ืœืžื˜ืจื” ื–ื•, ื•ืฉืืœืชื™ application/octet-stream, ื•ืœืื—ืจ ืžื›ืŸ ื”ื›ืœ ืขื‘ื“.

ืขื‘ื•ืจ ืงื‘ืฆื™ื ืฉืื™ืŸ ืœื”ื ืกื™ื•ืžืช, ื”ืฉืชืžืฉ ื‘ื ืงื•ื“ื”.

ื”ื ื” ื›ืš:

ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ืžืกืงื ื”

ื‘ืกื•ืคื• ืฉืœ ื“ื‘ืจ, ืื ื• ืžืงื‘ืœื™ื ืืช ื”ื™ื›ื•ืœืช ืœืืชื—ืœ ื“ืจืš ืจืฉืช ืžืงื•ืžื™ืช ื“ืจืš UEFI.

ืื ืขืฉื™ื ื• ื”ื›ืœ ื ื›ื•ืŸ, ื™ื”ื™ื” ืžืฉื”ื• ื›ืžื• ืชืคืจื™ื˜ ื‘ื—ื™ืจืช ื”ืืชื—ื•ืœ ื”ื–ื”:

ื”ืจื—ื‘ืช ืคื•ื ืงืฆื™ื•ื ืœื™ื•ืช WDS: ื”ื•ืกืคืช ื™ื›ื•ืœืช ืืชื—ื•ืœ ืฉืœ UEFI

ืื ื”ื›ื ืชื ืืช ื”ื›ืœื™ื ื”ื‘ืกื™ืกื™ื™ื ื•ืœื ืชืชืขืกืงื• ืขื ื”ืชืฆื•ืจื”, ืื– ื–ื” ืœื•ืงื— ื‘ืขืจืš 10-20 ื“ืงื•ืช ืœื™ื™ืฉื ืืช ื”ืชื›ื•ื ื” ื”ื–ื•.
ืœืงื— ืœื™ 2 ื™ืžื™ ืขื‘ื•ื“ื”, ื›ื™. ื”ื™ื™ืชื™ ืฆืจื™ืš ืœื—ืคืฉ ื”ืจื‘ื” ื‘ื’ื•ื’ืœ.

ื™ื™ืฉื•ื ืžื•ืฆืœื—!

ืชื•ื“ื” ืขืœ ืชืฉื•ืžืช ื”ืœื‘ ื•ืชื•ื“ื” ืจื‘ื” ืœืื•ืชื ืื ืฉื™ื ืฉื”ืžืืžืจื™ื ืฉืœื”ื ืขื–ืจื• ืœื™!
ืขืœ Habrรฉ ื–ื”: ืื™ื ื’ื˜ืืจ ะธ ื“ื™ืคื˜ืื•ืŸ.

ืžืงื•ืจ: www.habr.com

ื”ื•ืกืคืช ืชื’ื•ื‘ื”