LUKS рдкрд░ рдкреВрд░реНрдг рд╕рд┐рд╕реНрдЯрдо рдПрдиреНрдХреНрд░рд┐рдкреНрд╢рди рдФрд░ LVM рдХреЗ рд╕рд╛рде Archlinux рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рдЗрд╕ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЖрдк рдордЬрдмреВрд░ рдмреАрдорд╛рд░ рдЫреБрдЯреНрдЯреА рдХреЗ рджреМрд░рд╛рди рдореЗрд░реЗ рдЕрдЬреАрдм рд╢реЛрдз рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдереЛрдбрд╝рд╛ рдкрдврд╝реЗрдВрдЧреЗред рдпрд╣ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рдХрдИ рдЪреАрдЬреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрдЧрд╛, рдЬреЛ "рд╕рд░реНрд╡реЛрддреНрддрдо рдЕрднреНрдпрд╛рд╕" рдирд╣реАрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рднреА рд╕рдВрднрд╡ рд╣реИ! рддреЛ рдпрд╣рд╛рдБ рдПрдХ рдЯреНрдпреВрдЯреЛрд░рд┐рдпрд▓ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдЖрд░реНрдХрд▓рд┐рдирдХреНрд╕ (рдореЗрд░рд╛ рдкрд╕рдВрджреАрджрд╛ рдбрд┐рд╕реНрдЯреНрд░рд╛рд░) рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП:

  • рдПрдХ рдЕрд▓рдЧ / рдмреВрдЯ рдХреЗ рдмрд┐рдирд╛ (рдмрд╕ / рд░реВрдЯ рдореЗрдВ)
  • / lvm рдкрд░
  • luks рдХрдВрдЯреЗрдирд░ рдХреЗ рдЕрдВрджрд░ lvm
  • UEFI рдХреЗ рд╕рд╛рде
  • рдПрдХ рдЖрднрд╛рд╕реА рдорд╢реАрди рдореЗрдВред
  • рд╕реБрд░рдХреНрд╖рд┐рдд рдмреВрдЯ рдХреЗ рд╕рд╛рде (рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдореЗрдВ "рдореБрд╢реНрдХрд┐рд▓" рд╕рдлрд▓ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ)

рдпрд╣ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдПрдХ рд╣реА grubx64.efi рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде EFI рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рднрд╛рдЬрди рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ - рдЧреНрд░рдм рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ EFI рдЕрдиреБрдкреНрд░рдпреЛрдЧред

рдпрджрд┐ рдЖрдк рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдмрд┐рд▓реНрд▓реА рдореЗрдВ рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ!

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рд▓реЗрдиреЛрд╡реЛ рдПрдХреНрд╕ 240 рд▓реИрдкрдЯреЙрдк рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛, рдлрд┐рд░ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореИрдВрдиреЗ рдкреНрд░реЛрдХреНрд╕рдореЙрдХреНрд╕ рдореЗрдВ рдУрд╡реАрдПрдордПрдл рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ред

рдкрд░реАрдХреНрд╖рдгрд┐рдд рд╕реЗрдЯрдЕрдк:


рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рдорд╛рдирдХ рддрд░реАрдХреЗ рд╕реЗ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЫрд╡рд┐ рдореЗрд░реЗ рдкрд╕рдВрджреАрджрд╛ рдореЗрд╣рд░рд╛рдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ, рдЬрд┐рд╕реЗ рд╣рдореЗрд╢рд╛ рдпреИрдВрдбреЗрдХреНрд╕ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЕрдЧрд▓рд╛, рдпреВрдИрдПрдлрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреНрд░реЙрдХреНрд╕рдореЙрдХреНрд╕ рдореЗрдВ рд╡рд░реНрдЪреБрдЕрд▓ рдкрд░ рдХреБрдЫ рдмрд┐рдВрджреБред рдпреВрдИрдПрдлрдЖрдИ рдХреЗ рд╕рд╛рде рд╕реНрдЯреИрдВрдб рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЗрддрдирд╛ рджрд┐рд▓рдЪрд╕реНрдк рдирд╣реАрдВ рд╣реЛрдЧрд╛), рдЖрдкрдХреЛ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХреЗ рдЧреБрдгреЛрдВ рдореЗрдВ рд╕реАрдмреАрдЖрдИрдУрдПрд╕ рдХреЗ рдмрдЬрд╛рдп рдУрд╡реАрдПрдордПрдл рд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:



рдЕрдЧрд▓рд╛, рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдкрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рддрджрдиреБрд╕рд╛рд░ UEFI рдбрд┐рд╕реНрдХ рдЬреЛрдбрд╝реЗрдВ:



рдЕрдм рд╣рдо рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрдВрд╕реЛрд▓ рдореЗрдВ, рддреБрд░рдВрдд sshd рд╕реЗрд╡рд╛ рд╢реБрд░реВ рдХрд░реЗрдВ, рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВ рдФрд░ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ dhcp рдкрддрд╛ рдХрд░реЗрдВ:



рдЕрдЧрд▓рд╛, рд╣рдо рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП ssh рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдбрд┐рд╕реНрдХ рд▓реЗрдЖрдЙрдЯ


рдЗрд╕рд▓рд┐рдП, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдиреЗрдХреНрдЯ рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдо рдкрд╣рд▓реЗ рд╕рдордп рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдмрд╛рдж рдореЗрдВ рдпрд╣ рдкрддрд╛ рди рдЪрд▓реЗ рдХрд┐ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

timedatectl set-ntp true && timedatectl set-timezone Europe/Moscow 

рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реИ:

 root@archiso ~ # timedatectl Local time: Tue 2018-08-14 13:42:03 MSK Universal time: Tue 2018-08-14 10:42:03 UTC RTC time: Tue 2018-08-14 10:42:04 Time zone: Europe/Moscow (MSK, +0300) System clock synchronized: yes NTP service: active RTC in local TZ: no 

рдЕрдм рд╣рдо рдбрд┐рд╕реНрдХ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рд╕реНрддрд░ рдкрд░, рдореЗрд░реЗ рдкрд╛рд╕ / dev / vda рдбреНрд░рд╛рдЗрд╡ рд╣реИ, рдЬреИрд╕реЗ Virtio рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдпрд╣ рд╡рд┐рднрд╛рдЬрди рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдЦрд╛рд▓реА рдбрд┐рд╕реНрдХ рд╣реИ:

 root@archiso ~ # fdisk -l /dev/vda Disk /dev/vda: 15 GiB, 16106127360 bytes, 31457280 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes 

рд╣рдо рдЗрд╕реЗ 2 рднрд╛рдЧреЛрдВ рдореЗрдВ рддреЛрдбрд╝реЗрдВрдЧреЗ:

  • UEFI рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП fat32 рдбрд┐рд╕реНрдХ (EFI_system_partition)
  • рд╕рдм рдХреБрдЫ рдХреЗ рд╕рд╛рде LUKS рдХрдВрдЯреЗрдирд░

GPT рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП gdisk рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:

 root@archiso ~ # gdisk /dev/vda GPT fdisk (gdisk) version 1.0.4 Command (? for help): o This option deletes all partitions and creates a new protective MBR. Proceed? (Y/N): y 

рдЕрдЧрд▓рд╛, EF рдХреЗ рд╕рд╛рде EF00 (EFI рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рднрд╛рдЬрди) рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдПрдБ:

 Command (? for help): n Partition number (1-128, default 1): First sector (34-31457246, default = 2048) or {+-}size{KMGTP}: Last sector (2048-31457246, default = 31457246) or {+-}size{KMGTP}: +512M Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): <b>EF00</b> Changed type of partition to 'EFI System' 

рдЕрдм LUKS рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рднрд╛рдЬрди рдмрдирд╛рдПрдБ, рдЬрд╣рд╛рдБ рд╣рдо рдЯрд╛рдЗрдк рдХреЗ рд╕рд╛рде рднреА рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рд╣реЛрддреЗ рдФрд░ рдЗрд╕реЗ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ:

 Command (? for help): n Partition number (2-128, default 2): First sector (34-31457246, default = 1050624) or {+-}size{KMGTP}: Last sector (1050624-31457246, default = 31457246) or {+-}size{KMGTP}: <b>Current type is 'Linux filesystem' Hex code or GUID (L to show codes, Enter = 8300): Changed type of partition to 'Linux filesystem'</b> 

рд╣рдо рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд▓рд┐рдЦреЗрдВрдЧреЗ рдФрд░ рд╡рд┐рднрд╛рдЬрди рдорд╛рд░реНрдХрдЕрдк рдХреЗ рд╕рд╛рде рд╕рдорд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗ:

 Command (? for help): w Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING PARTITIONS!! Do you want to proceed? (Y/N): y OK; writing new GUID partition table (GPT) to /dev/vda. The operation has completed successfully. 

рдПрдХ LUKS рдХрдВрдЯреЗрдирд░ рдФрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдирд╛


рдкрд╣рд▓реЗ рдЦрдВрдб (vda1) рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рдХрд╛рдлреА рд╕рд░рд▓ рд╣реИред рд╣рдореЗрдВ рдмрд╕ рдЗрд╕реЗ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЕрднреА рдХреЗ рд▓рд┐рдП рдпрд╣ рд╣реИ:

 root@archiso ~ # mkfs.vfat /dev/vda1 mkfs.fat 4.1 (2017-01-24) 

рджреВрд╕рд░рд╛ рд╡рд┐рднрд╛рдЬрди рдХрдВрдЯреЗрдирд░ рд╣реИ рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдкрд╣рд▓реЗ рддреИрдпрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рд╡рд┐рднрд╛рдЬрди рдХреЛ cryptsetup рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреНрд░рд╛рд░реВрдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬрд╝ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:

 root@archiso ~ # cryptsetup -v luksFormat /dev/vda2 WARNING! ======== This will overwrite data on /dev/vda2 irrevocably. Are you sure? (Type uppercase yes): YES Enter passphrase for /dev/vda2: Verify passphrase: Command successful. 

*** рдореИрдВ рд╕рд┐рдлрд░ рдХреА рдкрд╕рдВрдж рд╕реЗ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдерд╛, рдЬрд┐рд╕рдореЗрдВ рд░реИрдВрдбрдорд╛рдЗрдЬреЗрд╢рди рдХреЗ рд╕рд╛рде рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рд╛рде рдУрд╡рд░рд░рд╛рдЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рд┐рд░реНрдл рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдХрдВрдЯреЗрдирд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЕрдЧрд▓рд╛, рдЙрд╕реА рдкрд╛рд╕рдлрд╝реНрд░реЗрдЬрд╝ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдХреЗ рдХрдВрдЯреЗрдирд░ рдЦреЛрд▓реЗрдВ:

 root@archiso ~ # cryptsetup luksOpen /dev/vda2 container Enter passphrase for /dev/vda2: 

рдЕрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдЦреБрд▓рд╛ рдХрдВрдЯреЗрдирд░ рд╕реБрд▓рдн рд╣реИ:

 root@archiso ~ # ls -l /dev/mapper | grep container lrwxrwxrwx 1 root root 7 Aug 14 14:01 container -> ../dm-0 

рдЕрдм рд╣рдо lvm рдХреЗ рд╕рд╛рде рдЬрд╛рд░реА рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ (рдореИрдВ рдПрдХ рддреНрд╡рд░рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рд▓рд┐рдЦреВрдВрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╡рд┐рд╖рдп рдирд╣реАрдВ рд╣реИ):

 root@archiso ~ # pvcreate /dev/mapper/container Physical volume "/dev/mapper/container" successfully created. root@archiso ~ # vgcreate rootvg /dev/mapper/container Volume group "rootvg" successfully created root@archiso ~ # lvcreate -L1G -n swap rootvg Logical volume "swap" created. root@archiso ~ # lvcreate -L5G -n root rootvg Logical volume "root" created. root@archiso ~ # lvcreate -L2G -n home rootvg Logical volume "home" created. root@archiso ~ # lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home rootvg -wi-a----- 2.00g root rootvg -wi-a----- 5.00g swap rootvg -wi-a----- 1.00g 

рдЕрдЧрд▓рд╛, рд╣рдорд╛рд░реЗ lv рдкрд░ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдПрдБ:

 root@archiso ~ # mkfs.ext4 -L root /dev/mapper/rootvg-root mke2fs 1.44.3 (10-July-2018) ... Writing superblocks and filesystem accounting information: done [root@archiso ~]# mkfs.ext4 -L home /dev/mapper/rootvg-home mke2fs 1.44.3 (10-July-2018) Creating filesystem with 524288 4k blocks and 131072 inodes ... Writing superblocks and filesystem accounting information: done [root@archiso ~]# mkswap -L swap /dev/mapper/rootvg-swap ... LABEL=swap, UUID=98b0bc31-1c62-4fec-bb97-e1913d1e8cb4 

рдЕрдм рдпрд╣ рд╕рдм рдЖрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕реНрдерд╛рдкрдирд╛ рдмрд┐рдВрджреБ рд╣реЛрдЧрд╛ / mnt, рдЬрд╣рд╛рдВ рд╣рдорд╛рд░реЗ рднрд╡рд┐рд╖реНрдп рдХреА рдкреНрд░рдгрд╛рд▓реА рдХреА рдЬрдбрд╝ рд╢реБрд░реВ рд╣реЛрдЧреА:

 [root@archiso ~]# mount /dev/mapper/rootvg-root /mnt/ [root@archiso ~]# mkdir -p /mnt/{home,boot/efi} 

*** / boot / efi рдореИрдВ рдмрдирд╛рддрд╛ рд╣реВрдВ рддрд╛рдХрд┐ / рдмреВрдЯ рд╕реНрд╡рдпрдВ / dev / mapper / rootvg- рд░реВрдЯ рдкрд░ рдмрдирд╛ рд░рд╣реЗ, рдФрд░ efi рдлрд╝реЛрд▓реНрдбрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА / dev / vda1 (fat32 efi рдкрд╛рд░реНрдЯреАрд╢рди) рдкрд░ рдЖрд░реЛрд╣рд┐рдд рд╣реЛ:

 [root@archiso ~]# mount /dev/vda1 /mnt/boot/efi/ [root@archiso ~]# mount /dev/mapper/rootvg-home /mnt/home/ [root@archiso ~]# swapon /dev/mapper/rootvg-swap 

рд╡рд░реНрддрдорд╛рди рдорд╛рдЙрдВрдЯ рдкреЙрдЗрдВрдЯ (рд╣рдореЗрд╢рд╛ рдЙрдкрдпреЛрдЧреА) рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ:

 [root@archiso ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 462.5M 1 loop /run/archiso/sfs/airootfs sr0 11:0 1 573M 0 rom /run/archiso/bootmnt vda 254:0 0 15G 0 disk тФЬтФАvda1 254:1 0 512M 0 part /mnt/boot/efi тФФтФАvda2 254:2 0 14.5G 0 part тФФтФАcontainer 253:0 0 14.5G 0 crypt тФЬтФАrootvg-swap 253:1 0 1G 0 lvm [SWAP] тФЬтФАrootvg-root 253:2 0 5G 0 lvm /mnt тФФтФАrootvg-home 253:3 0 2G 0 lvm /mnt/home 

рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦрддреЗ рд╣реИрдВ, рд╕рдм рдХреБрдЫ рдИрдорд╛рдирджрд╛рд░ рд╣реИ рдФрд░ рдЕрдм рдпрд╣ рдЖрд░реНрдЪ рдХреЛ рдбрд╛рд▓рдиреЗ рдХрд╛ рд╕рдордп рд╣реИред

рдЖрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рдХреА рд╕реНрдерд╛рдкрдирд╛


рдмреЗрд╕ рдкреИрдХреЗрдЬ рд╕реЗ рдмреЗрд╕ рдкреИрдХреЗрдЬ рдФрд░ рдмреЗрд╕-рдбреЗрд╡реЗрд▓ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдЖрдк рдЬреЛ рдХреБрдЫ рднреА рдЙрдиреНрд╣реЗрдВ рдФрд░ рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ):

 pacstrap /mnt base base-devel 

рд╕рдм рдХреБрдЫ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмреВрдЯ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЖрдзрд╛рд░ рдкреНрд░рдгрд╛рд▓реА рддреИрдпрд╛рд░ рд╣реИред рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдореИрдВрдиреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдирд┐рдХрд╛рд▓рд╛ред рдЕрдм рд╣рдо рдмреВрдЯ рдФрд░ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдмреБрдирд┐рдпрд╛рджреА рдЪреАрдЬреЛрдВ рд╕реЗ, рд╣рдо рддреБрд░рдВрдд fstab рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ:

 genfstab -pU /mnt >> /mnt/etc/fstab 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрд╕ рдирдП рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдЖрд░реНрдХ-рдЪреЗрд░реЛрдЯ рдмрдирд╛рдПрдВ:

 [root@archiso ~]# arch-chroot /mnt 

*** рдЖрд░реНрдЪ-рдЪреЗрд░реЛрдЯ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдм рдХреБрдЫ рдЕрдкрдиреЗ рдЖрдк рдХрд░рддрд╛ рд╣реИред рдпрджреНрдпрдкрд┐ рдЖрдк рд╣рдореЗрд╢рд╛ рдорд╛рдирдХ рдЪрд░реЛрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕рд╛ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, gentoo-handbook wiki.gentoo.org/wiki/Handbook рдореЗрдВ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ: AMD64 / рд╕реНрдерд╛рдкрдирд╛ / рдмреЗрд╕ рдЕрдиреБрднрд╛рдЧ "рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдорд╛рдЙрдВрдЯ рдХрд░рдирд╛"

рд╕рд┐рд╕реНрдЯрдо рд╕рдордп рдФрд░ hostname рдХреЛ рддреБрд░рдВрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

 ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime && \ hwclock --systohc && \ echo luks-test > /etc/hostname 

рд░реВрдЯ рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░реЗрдВ:

 [root@archiso /]# passwd root New password: Retype new password: passwd: password updated successfully 

/Etc/locale.gen рдореЗрдВ рдЖрд╡рд╢реНрдпрдХ рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рд░рджреНрдж рдХрд░реЗрдВ:

 [root@archiso /]# vi /etc/locale.gen [root@archiso /]# grep -v '^#' /etc/locale.gen en_US ISO-8859-1 en_US.UTF-8 UTF-8 ru_RU.UTF-8 UTF-8 ru_RU ISO-8859-5 

рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВрдЧреЗ:

 [root@archiso /]# locale-gen Generating locales... en_US.ISO-8859-1... done en_US.UTF-8... done ru_RU.UTF-8... done ru_RU.ISO-8859-5... done Generation complete 

рд╕рд┐рд╕реНрдЯрдо рдФрд░ рдХрдВрд╕реЛрд▓ рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рддреБрд░рдВрдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ:

 [root@archiso /]# echo LANG=en_US.UTF-8 > /etc/locale.conf [root@archiso /]# echo KEYMAP=ru > /etc/vconsole.conf [root@archiso /]# echo FONT=cyr-sun16 >> /etc/vconsole.conf 

рдЕрдм /etc/mkinitcpio.conf рдлрд╝рд╛рдЗрд▓ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВ, рдЬреЛ initramfs рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╕рдордп рд╡рд┐рдХрд▓реНрдкреЛрдВ, рд╣реБрдХ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рдЬрд╝рд┐рдореНрдореЗрджрд╛рд░ рд╣реИ:

 vi /etc/mkinitcpio.conf 

рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд╛рдд рд╣реБрдХ рдФрд░ рдЙрдирдХрд╛ рдХреНрд░рдо рд╣реИ:

 HOOKS=(base udev autodetect modconf block keymap encrypt lvm2 resume filesystems keyboard fsck) 

*** рд╕реНрд╡реИрдк рд╕реЗ рд╣рд╛рдЗрдмрд░рдиреЗрдЯ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╕рд┐рд╕реНрдЯрдо рдХреЛ рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░реЗрдВред рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдкрд░ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдореИрдВрдиреЗ рдЙрд╕реЗ рдмреАрдЪ рд╕реЗ рдХреЙрдкреА рдХрд┐рдпрд╛ред

рдЕрдм рд╣рдо initramfs рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

 [root@archiso /]# mkinitcpio -p linux ==> Building image from preset: /etc/mkinitcpio.d/linux.preset: 'default' -> -k /boot/vmlinuz-linux -c /etc/mkinitcpio.conf -g /boot/initramfs-linux.img ==> Starting build: 4.17.14-arch1-1-ARCH -> Running build hook: [base] -> Running build hook: [udev] -> Running build hook: [autodetect] -> Running build hook: [modconf] -> Running build hook: [block] -> Running build hook: [keymap] -> Running build hook: [encrypt] -> Running build hook: [lvm2] -> Running build hook: [resume] -> Running build hook: [filesystems] -> Running build hook: [keyboard] -> Running build hook: [fsck] ==> Generating module dependencies ==> Creating gzip-compressed initcpio image: /boot/initramfs-linux.img ==> Image generation successful 

рдЕрдм рдЬрдм рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕рд┐рд╕реНрдЯрдо рд╣реИ, рддреЛ рд╣рдореЗрдВ рдмреВрдЯрд▓реЛрдбрд░ рдХреЛ рд╕реНрд╡рдпрдВ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдореЗрд░реА рдкрд╕рдВрдж рдЧреНрд░рдм (2) рдкрд░ рдЧрд┐рд░ рдЧрдИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХрд┐рд╕реА рддрд░рд╣ рдЕрдзрд┐рдХ рдкрд░рд┐рдЪрд┐рдд рд╣реИ рдФрд░ рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдХ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╡рд┐рднрд╛рдЬрди рд╕реЗ рдХрд░реНрдиреЗрд▓ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ (рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ, рдпрд╛ рдореИрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреВрд╕рд░реЛрдВ рдХреА рддрд▓рд╛рд╢ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ)ред

рдЧреНрд░рдм рдкреИрдХреЗрдЬ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 [root@archiso /]# pacman -S grub dosfstools efibootmgr mtools 

рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреНрд░рдм рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:

 vim /etc/default/grub 

рдпрд╣рд╛рдБ рдЖрдкрдХреЛ рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдкрдВрдХреНрддрд┐ рдХреЛ рдЕрдирд╕реБрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ (рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ, рдЕрд╡рд╢реНрдп):

 # Uncomment to enable booting from LUKS encrypted devices GRUB_ENABLE_CRYPTODISK=y 

рдФрд░ GRUB_CMDLINE_LINUX рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЦрд╛рд▓реА рд╣реИ):

 GRUB_CMDLINE_LINUX="cryptdevice=UUID=5ad7c9ad-fb17-4839-925e-479432516c07:container" 

UUID рдореИрдВрдиреЗ рдмреНрд▓рдХрд┐рдб рд╕реЗ рд▓рд┐рдпрд╛:

 [root@archiso /]# blkid | grep vda2 /dev/vda2: UUID="5ad7c9ad-fb17-4839-925e-479432516c07" TYPE="crypto_LUKS" PARTLABEL="Linux filesystem" PARTUUID="667a1243-17ff-4f03-952c-5afd5e3415cc" 

рд╣рдо рдЧреНрд░рдм рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рди рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ:

 [root@archiso /]# grub-mkconfig -o /boot/grub/grub.cfg Generating grub configuration file ... WARNING: Failed to connect to lvmetad. Falling back to device scanning. Found linux image: /boot/vmlinuz-linux Found initrd image: /boot/initramfs-linux.img Found fallback initrd image(s) in /boot: initramfs-linux-fallback.img WARNING: Failed to connect to lvmetad. Falling back to device scanning. done 

рдЗрд╕рдХреЗ рдмрд╛рдж, рдбрд┐рд╕реНрдХ рдкрд░ рд╣реА рдЧреНрд░рдм рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ:

 [root@archiso /]# grub-install /dev/vda Installing for x86_64-efi platform. ... Installation finished. No error reported. 

*** рдЖрдк --recheck --debug рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ ... рд▓реЗрдХрд┐рди ... рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЕрдкрдиреЗ рдЖрдк рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ)

рдЕрдм рд╣рдо / etc / crypttab рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ, рддрд╛рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд╕реНрд╡рдпрдВ рдкрддрд╛ рдЪрд▓ рдЬрд╛рдП рдХрд┐ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп LUKS рдЕрдиреБрднрд╛рдЧ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИред рд▓рд╛рдЗрди рдЬреЛрдбрд╝реЗрдВ:

 echo "container /dev/vda2 none" >> /etc/crypttab 

рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЖрдкрдХреЛ / dev / vda2 рд╡рд┐рднрд╛рдЬрди рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд╛рд╕рд╡рд░реНрдб (рдХреЛрдИ рдирд╣реАрдВ) рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдореИрдкрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрдВрдЯреЗрдирд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдЕрдм рд╣рдо рдЪреЗрд░реЛрдЯ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдХреЛ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ:

 [root@archiso /]# exit exit [root@archiso ~]# reboot Welcome back! 

рдЕрдм рдкрд░рд┐рдгрд╛рдо рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрдВрд╕реЛрд▓ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ:



рдЗрд╕ рд╕реНрддрд░ рдкрд░, рд╣рдордиреЗ EFI рдПрдкреНрд▓рд┐рдХреЗрд╢рди /boot/efi/EFI/arch/grubx64.efi рдХреЗ рд╕рд╛рде / dev / vda1 рд╢реБрд░реВ рдХрд┐рдпрд╛, рдЬреЛ рд╣рдорд╕реЗ рд╣рдорд╛рд░реЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рд╕рд╡рд░реНрдб рдорд╛рдВрдЧрддрд╛ рд╣реИред

рдкрд╛рд╕рд╡рд░реНрдб рджрд░реНрдЬ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдЕрдЧрд▓рд╛:



рдпрд╣рд╛рдБ рд╣рдорд╛рд░реЗ рдмреВрдЯ рд╡рд┐рдХрд▓реНрдк /boot/grub/grub.cfg рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рдЧреНрд░рдм рд╡рд┐рдВрдбреЛ рд╣реИред
рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░, рдЧреНрд░рдм рдиреЗ рд╣рдорд╛рд░реЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ (/boot/grub/grub.cfg), рдХрд░реНрдиреЗрд▓, рдФрд░ рдЗрдирдЯреНрд░рд╛рдорд╛рдлрд╝реНрд╕ рддрдХ рд╕реНрд╡рдпрдВ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХреАред рд╡рд┐рдХрд▓реНрдк рдЪреБрдирдиреЗ рдХреЗ рдмрд╛рдж, рдХрд░реНрдиреЗрд▓ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмреВрдЯ рд╣реЛрдЧрд╛, initramfs:



рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ, рдХрд░реНрдиреЗрд▓ рдПрдиреНрдХреНрд░рд┐рдкреНрдЯреЗрдб рд╣реБрдХ рдХреЗ рд╕рд╛рде рдЖрдпрд╛, рдЬреЛ рдлрд┐рд░ рд╕реЗ рдХрдВрдЯреЗрдирд░ рдХреЛ рдбрд┐рдХреНрд░рд┐рдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╕реЗ рдкрд╛рд╕рд╡рд░реНрдб рдкреВрдЫрддрд╛ рд╣реИ (рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдкрдХреЛ рдкрд╛рд╕рд╡рд░реНрдб рдХреЛ 2 рдмрд╛рд░ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмреВрдЯ рдХреЗ рд▓рд┐рдП 2 рдХрдВрдЯреЗрдирд░ рдмрдирд╛рддреЗ рд╣реИрдВ рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рдВрдмрди рд╕реЗ рд░реВрдЯ рдХрд░рддреЗ рд╣реИрдВ :)

рдФрд░ рдлрд┐рд░ рд╕рд┐рд╕реНрдЯрдо рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓реЛрдб рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж:



рдкреБрдирд╢реНрдЪ: рд╕реНрдХрд┐рдЬрд╝реЛрдлреНрд░реЗрдирд┐рдпрд╛ рдХреЗ рд╕реНрддрд░ рдХреЛ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреЗрд╡рд▓ рд╕реБрд░рдХреНрд╖рд┐рдд рдмреВрдЯ рд╣рдорд╛рд░реЗ grubx64.efi рдмреВрд╕реНрдЯрд░ рдкрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рд╣реИред

рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ / рдХрд░реНрдг / vda1 рдкрд░ рдХрд░реНрдиреЗрд▓ рдФрд░ рдЗрдирдЯреНрд░рд╛рдореЗрдлрд╝реНрд╕ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд┐рдЪреНрдЫреБрдХ рдерд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА 100 рдмрд╛рд░ рдХрд┐рдпрд╛ рдерд╛ред рдЕрдиреНрдп рдмреВрдЯ рд▓реЛрдбрд░ рдЬреИрд╕реЗ SHIM, рдмреВрдЯрдХреНрдЯрд▓ рдЖрджрд┐ рдХреЛ рдпрд╣ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ (рдареАрдХ рд╣реИ, рдЕрдЧрд░ рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдмрддрд╛рдПрдВ)

рд╡рд┐рд╖рдп рдкрд░ рдЙрдкрдпреЛрдЧреА рд╕рд╛рдордЧреНрд░реА рдФрд░ рдкреНрд░рдпреБрдХреНрдд рд╕рд╛рдордЧреНрд░реА

Source: https://habr.com/ru/post/hi420081/


All Articles