Elbrus OS рд╡рд░ Veeam рд╡рд░реВрди Linux рдмреЕрдХрдЕрдк. рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди ['?' | '.' | '!']

рдирдорд╕реНрдХрд╛рд░.
Habr├й рд╡рд░ рдЕрд▓реАрдХрдбреАрд▓ рд▓реЗрдЦ рд╕рд░рд╛рд╡ рдордзреНрдпреЗ рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди. рднрд╛рдЧ 1. рдкрд░реНрдпрд╛рдп ╨╕ рд╕рдВрдЧреАрдд рдЬрд╛рд╕реНрдд рдХрд╛рд│ рд╡рд╛рдЬрд▓реЗ рдирд╛рд╣реА... рдХрд┐рдВрд╡рд╛ рдПрд▓реНрдмреНрд░рд╕ рдУрдПрд╕ рдХрдзреАрд╣реА рдореБрдХреНрдд рдХрд╕реЗ рдЭрд╛рд▓реЗ рдирд╛рд╣реА рдорд▓рд╛ рдЙрджрд╛рд╕реАрди рд╕реЛрдбрд▓реЗ рдирд╛рд╣реА. рдореА рдмреЕрдХрдЕрдк рдЯрд╛рд╕реНрдХрдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рдпрд╛ рд╕рдорд╕реНрдпреЗрдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛. рд╢рд┐рд╡рд╛рдп, рдордзреНрдпреЗ рд╣рд╛ рд▓реЗрдЦ Veeam рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЙрддреНрдкрд╛рджрдирд╛рдВрдЪрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХреЗрд▓рд╛ рдЖрд╣реЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рд╣рд╛ рдореБрджреНрджрд╛ рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирд╛рдЪреНрдпрд╛ рд╕рдВрджрд░реНрднрд╛рдд рд╡рд┐рд╢реЗрд╖рдд: рд╕рдВрдмрдВрдзрд┐рдд рдЕрд╕реВ рд╢рдХрддреЛ.

Elbrus OS рд╡рд░ Veeam рд╡рд░реВрди Linux рдмреЕрдХрдЕрдк. рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди ['?' | '.' | '!']
рдореВрд│ рдкреНрд░рддрд┐рдорд╛ рд╕реНрд░реЛрдд

рд╕рд░реНрд╡ рдкреНрд░рдердо, рдореА рдПрд▓реНрдмреНрд░рд╕ рдУрдПрд╕ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛, рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдРрд╡рдЬреА, рдлрдХреНрдд x86_64 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рд╡рд┐рддрд░рдг, рддреЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреЗ рдкрд╣рд╛ рдЖрдгрд┐ рддреНрдпрд╛рд╡рд░ рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡реАрдо рдПрдЬрдВрдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рд╛. рдпрд╛рддреВрди рдХрд╛рдп рдирд┐рд╖реНрдкрдиреНрди рдЭрд╛рд▓реЗ рд╣реЗ рдЬрд╛рдгреВрди рдШреНрдпрд╛рдпрдЪреЗ рдЕрд╕рд▓реНрдпрд╛рд╕, рдХреГрдкрдпрд╛ рдорд╛рдВрдЬрд░ рдкрд╣рд╛.

рддрд░, рдПрдХ рд▓рд╣рд╛рди рд╡рд┐рд╖рдпрд╛рдВрддрд░, рдЬрд░ рдПрдЦрд╛рджреНрдпрд╛рд▓рд╛ рдорд╛рд╣рд┐рдд рдирд╕реЗрд▓ рддрд░. "рдПрд▓реНрдмреНрд░рд╕" рдЕрд╕реЗ рдЖрд╣реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдРрд╡рдЬреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рд╕рд┐рд╕реНрдЯрдорд╕рд╣. рдпрд╛ рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рдПрд▓реНрдмреНрд░рд╕ рдУрдПрд╕ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдЖрд╣реЗ. рдЖрдгрд┐ - рд▓реЛрдХрдкреНрд░рд┐рдп рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рдЪреНрдпрд╛ рд╡рд┐рд░реБрджреНрдз - рдПрд▓реНрдмреНрд░рд╕ рдУрдПрд╕ рдСрдкрд░реЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рдПрд▓реНрдмреНрд░рд╕ рдкреНрд░реЛрд╕реЗрд╕рд░рд╡рд░ рдЖрдзрд╛рд░рд┐рдд рд╣рд╛рд░реНрдбрд╡реЗрдЕрд░ рд╕рд┐рд╕реНрдЯрдо рдЕрд╕рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдирд╛рд╣реА. x86 рд╕рд╛рдареА тАЬPDK тАЬElbrusтАЭ рдЖрд╣реЗ - рдЦрд░рдВ рддрд░, рддреЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдбреЛрдореЗрдирдордзреНрдпреЗ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдбрд┐рд╕реНрдХрдЪреНрдпрд╛ рд░реВрдкрд╛рдд рджрд┐рд╕рд▓реЗ. рддрд╕реЗ, рддреЗрдереЗ рдПрдХ рддрд│рдЯреАрдк рдЖрд╣реЗ тАЬрдкреАрдбреАрдХреЗ - рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдбреЗрд╡реНрд╣рд▓рдкрдореЗрдВрдЯ рдХрд┐рдЯ, рдбреЗрд╡реНрд╣рд▓рдкрд░ рдХрд┐рдЯтАЭ - рдЫрд╛рди, рдпрд╛рдЪрд╛ рдЕрд░реНрде рддреЗрдереЗ рдХрд┐рдорд╛рди рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ рдЖрд╣реЗ.

рдЖрдгрдЦреА рдПрдХ рд▓рд╣рд╛рди рдЬрдмрд░рджрд╕реНрдд рдорд╛рдШрд╛рд░. рд╡рд╕реНрддреБрд╕реНрдерд┐рддреА рдЕрд╢реА рдЖрд╣реЗ рдХреА рдореА рдПрдХрджрд╛ MSVS рдЖрдгрд┐ Baguette RTOS рд╕рд╛рд░рдЦреНрдпрд╛ рдШрд░рдЧреБрддреА рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░рдЪрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЗрд▓рд╛. рдорд▓рд╛ MCST рдЪреНрдпрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░рд╕рд╣ рдШрд░рдЧреБрддреА рдШрдЯрдХрд╛рдВрд╕рд╣ рдХрд╛рдо рдХрд░рдгреНрдпрд╛рдЪрд╛ рдЕрдиреБрднрд╡ рд╣реЛрддрд╛. рдореНрд╣рдгреВрди, рдореА рдкреВрд░реНрдг рдЬрдмрд╛рдмрджрд╛рд░реАрдиреЗ рдореНрд╣рдгреВ рд╢рдХрддреЛ рдХреА рдпрд╛ рдХреНрд╖реЗрддреНрд░рд╛рдд рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡реИрд╢рд┐рд╖реНрдЯреНрдп рдЖрд╣реЗ рдЖрдгрд┐ рдореА рд▓реЗрдЦрд╛рдд рддреНрдпрд╛рд╕ рд╕реНрдкрд░реНрд╢ рди рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реЗрди. рдЬреЗрд╡реНрд╣рд╛ рдорд▓рд╛ рдЦрд░реЛрдЦрд░ рдХрд░рд╛рдпрдЪреЗ рдЕрд╕реЗрд▓, рддреЗрд╡реНрд╣рд╛ рдореА [TBD] рдЯреЕрдЧ рд▓рд╛рд╡реЗрди. рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рд╕рд░рд│ рдЯреНрд░реЛрд▓рд┐рдВрдЧ рдЖрдгрд┐ рд╕рд╛рдорд╛рдиреНрдп рдЖрдХреНрд░реЛрд╢ рди рдХрд░рддрд╛ рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░реВ. рд╢реЗрд╡рдЯреА, рд░рд╢рд┐рдпрди рд╕рдВрд░рдХреНрд╖рдг рдЙрджреНрдпреЛрдЧ рдЖрдгрд┐ рд╕рд░рдХрд╛рд░реА рд╕рдВрд╕реНрдерд╛ рд╕рдордЬреВрди рдШреЗрдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдореЛрдард╛ рджреЗрд╢ - рд▓рд╣рд╛рди рдмрдЬреЗрдЯ.. [TBD].

рд╢реВрдиреНрдп рдЯрдкреНрдкрд╛ - рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛. рд╣реЗ рд▓рдХреНрд╖рд╛рдд рдШреЗрдгреНрдпрд╛рд╕рд╛рд░рдЦреЗ рдЖрд╣реЗ рдХреА рдПрд▓реНрдмреНрд░рд╕ рдУрдПрд╕ рдЙрдкрд▓рдмреНрдз рдЭрд╛рд▓реНрдпрд╛рдЪреНрдпрд╛ рдмрд╛рддрдореНрдпрд╛рдВрдореБрд│реЗ рдПрдХ рдЕрдиреБрдирд╛рдж рдЭрд╛рд▓рд╛, рдЗрддрдХрд╛ рдХреА рд╡рд┐рддрд░рдг рд╕рд░реНрд╡реНрд╣рд░ рдбрд╛рдЙрди рдЭрд╛рд▓рд╛. [TBD] Yandex рдЖрдгрд┐ рдЕрднрд┐рдпрдВрддрд╛ рдпрд╛рдВрдирд╛ рдзрдиреНрдпрд╡рд╛рдж рдЬреНрдпрд╛рдВрдиреА рддреЗ рддрд┐рдереЗ рд╣рд▓рд╡рдгреНрдпрд╛рдЪрд╛ рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛. рддреНрдпрд╛рдореБрд│реЗ рдбрд╛рдЙрдирд▓реЛрдбрдЪрд╛ рд╡реЗрдЧ рдЪрд╛рдВрдЧрд▓рд╛ рдЖрд╣реЗ.

рдкрд╣рд┐рд▓рд╛ рдЯрдкреНрдкрд╛ - рд╕реНрдерд╛рдкрдирд╛. рдореА рддреЗ рдкрд╣рд┐рд▓реНрдпрд╛ рд╣рд╛рдпрдкрд░рд╡рд╛рдЗрдЬрд░рд╡рд░ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЬреЗ рд╡рд┐рдирд╛рдореВрд▓реНрдп рд╡рд╛рдкрд░рд╛рд╕рд╛рдареА рдЙрдкрд▓рдмреНрдз рд╣реЛрддреЗ. рдореА рджреЛрди рдХреЛрд░ рд╡рд╛рдЯрдк рдХреЗрд▓реЗ, RAM рдЪреЗ рджреЛрди рдЧрд┐рдЧреНрд╕, рд╡реНрд╣рд┐рдбрд┐рдУрд╕рд╛рдареА 32 MB (рддреЗрдереЗ рдПрдХ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлреЗрд╕ рдЕрд╕реЗрд▓, рдорд▓рд╛ рд╡рд╛рдЯрд▓реЗ). рдбрд┐рд╕реНрдХ рдиреЗрд╣рдореАрдкреНрд░рдорд╛рдгреЗ рдЖрд╣реЗ - 32 рдЬреАрдмреА.
рдореА рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реБрд░реВ рдХреЗрд▓реЗ. рдореА рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рд╕реВрдЪрдирд╛ рд╡рд╛рдкрд░рд▓реНрдпрд╛ рдирд╛рд╣реАрдд, рдореНрд╣рдгреВрди рдореА рддреНрдпрд╛рд╡рд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░реВ рд╢рдХрдд рдирд╛рд╣реА. TUI рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди рдЗрдВрдЯрд░рдлреЗрд╕ рдЕрддреНрдпрдВрдд рдХрдореА рдЖрд╣реЗ.

Elbrus OS рд╡рд░ Veeam рд╡рд░реВрди Linux рдмреЕрдХрдЕрдк. рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди ['?' | '.' | '!']
рдмрд░рдВ, рдЫрд╛рди, рдЖрдореНрд╣реА рдорд╛рдКрд╕рд╢рд┐рд╡рд╛рдп рдХрд░реВ рд╢рдХрддреЛ.

рдореА рджреБрд╕рд▒реНрдпрд╛ рдкреНрд░рдпрддреНрдирд╛рдд рдкреБрдвреАрд▓ рд╡рд┐рдВрдбреЛ рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реА. рдбрд┐рд╕реНрдХрд╡рд░реВрди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рддрд╛рдирд╛ рдбреАрдлреЙрд▓реНрдЯ рдбрд┐рд╡реНрд╣рд╛рдЗрд╕ sr0 [TBD] рдХрд╛ рдирд┐рд╡рдбреВ рдирдпреЗ?
CD-ROM рд╕реНрддреНрд░реЛрдд рдирд┐рд╡рдбрд╛ рдЖрдгрд┐ рдкреБрдвреЗ рдЬрд╛.

Elbrus OS рд╡рд░ Veeam рд╡рд░реВрди Linux рдмреЕрдХрдЕрдк. рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди ['?' | '.' | '!']

рдЯрд╛рдЗрдо рдЭреЛрди рдирд┐рд╡рдбрддрд╛рдирд╛, рдорд▓рд╛ рдЕрдЪрд╛рдирдХ рд▓рдХреНрд╖рд╛рдд рдЖрд▓реЗ рдХреА рд╕рд┐рд╕реНрдЯрдо рдЗрдирд┐рдЯ рдмреВрдЯ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╡рд╛рдкрд░рддреЗ рдЖрдгрд┐ рдореА TTY0 рд╡рд░реВрди рдХрд╛рдо рдХрд░рдд рдЖрд╣реЗ.

Elbrus OS рд╡рд░ Veeam рд╡рд░реВрди Linux рдмреЕрдХрдЕрдк. рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди ['?' | '.' | '!']

рдареАрдХ рдЖрд╣реЗ, рдордЧ "рдПрд▓реНрдмреНрд░рд╕" рдЪреЗ рд╕рдореБрджрд╛рдп рдореНрд╣рдгреВрди рд╡рд░реНрдЧреАрдХрд░рдг рдХрд░реВрдпрд╛ рдЬреБрдиреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕рдгрд╛рд░реЗ[TBD]. рддрддреНрд╡рддрдГ, рд╣реЗ рдЪрд╛рдВрдЧрд▓реЗ рдЖрд╣реЗ: рдбрд╛рдЙрдирд▓реЛрдб рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╢реА рдХрд╛рд░реНрдп рдХрд░рддреЗ рд╣реЗ рдкрд╛рд╣рдгреНрдпрд╛рд╕рд╛рдареА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрддреНрд░реЛрдд рдХреЛрдб рд╡рд┐рдЪрд╛рд░рдгреНрдпрд╛рдЪреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╛рд╣реА, рдХрд╛рд░рдг рд╕рд░реНрд╡рдХрд╛рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗрд▓реЗрд▓реЗ рдЖрд╣реЗ.

рдмрд╛рдХреАрдЪреЗ рдЬрд╡рд│рдЬрд╡рд│ рдмрд┐рдирдорд╣рддреНрддреНрд╡рд╛рдЪреЗ рдЖрд╣реЗ: рдЖрдореНрд╣реА рд╕рд░реНрд╡рдХрд╛рд╣реА рдареЗрд╡рддреЛ рдЖрдгрд┐ рд╕рд╣рдордд рдЕрд╕рддреЛ. рд╡рд╛рдЯреЗрдд, рдЖрдореНрд╣рд╛рд▓рд╛ рдХрд│рд▓реЗ рдХреА рдХрд░реНрдирд▓ 3.14.79-13.84 рд╡рд╛рдкрд░рд▓рд╛ рдЖрд╣реЗ. рд╣рдореНрдо, рдбреЗрдмрд┐рдпрди 7 рдордзреНрдпреЗ 3.2 [TBD] рд╣реЛрддреЗ.

рдкреБрдвреЗ, рдбрд┐рдлреЙрд▓реНрдЯ рдбрд┐рд╕реНрдХ рд╡рд┐рднрд╛рдЬрди рдирд┐рд╡рдбрд╛ рдЖрдгрд┐... рдЖрдореНрд╣рд╛рд▓рд╛ рдПрдХ рдЪреЗрддрд╛рд╡рдгреА рджрд┐рд╕реЗрд▓:

Elbrus OS рд╡рд░ Veeam рд╡рд░реВрди Linux рдмреЕрдХрдЕрдк. рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди ['?' | '.' | '!']

рд╣рдореНрдо, рдХрд╕рд╛ рддрд░реА рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╡рд┐рднрд╛рдЬрдирд╛рдиреЗ 32 рдЧрд┐рдЧ рдбрд┐рд╕реНрдХрд╢реА рд╕рд╛рдордирд╛ рдХреЗрд▓рд╛ рдирд╛рд╣реА. рдореА рдбрд┐рд╕реНрдХ рдмрджрд▓рд▓реА рдирд╛рд╣реА; рдореА "рдСрд▓-рдЗрди-рд╡рди" рд╢реИрд▓реАрдордзреНрдпреЗ рдореЕрдиреНрдпреБрдЕрд▓ рдбрд┐рд╕реНрдХ рд╡рд┐рднрд╛рдЬрдирд╛рд╕рд╣ рд╢реЛрдз рдкреВрд░реНрдг рдХреЗрд▓рд╛. рдорд▓рд╛ ext3 рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ, рдХрд╛рд░рдг /boot ext4 рдордзреНрдпреЗ рдЕрд╕реВ рд╢рдХрдд рдирд╛рд╣реА.
рдХреЛрдгрддреАрд╣реА рдШрдЯрдирд╛ рди рд╣реЛрддрд╛ рдпрдВрддреНрд░рдгрд╛ рдкреБрдвреЗ рдЖрд▓реА.

рджреБрд╕рд░рд╛ рдЯрдкреНрдкрд╛ - рдкрд░реНрдпрд╛рдп рд╢реЛрдзрд╛.
рджреБрд╕рд░реНтАНрдпрд╛ рдбрд┐рд╕реНрдХрдЪреНрдпрд╛ рд╕рд╛рдореБрдЧреНрд░реАрдЪрд╛ рдЕрднреНрдпрд╛рд╕ рдХреЗрд▓реНрдпрд╛рд╡рд░, рдорд▓рд╛ рд╕рдордЬрд▓реЗ рдХреА рд╣реЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдЕрд╕рд▓реЗрд▓реЗ рднрд╛рдВрдбрд╛рд░ рдЖрд╣реЗ. рдкреЕрдХреЗрдЬреЗрд╕рдордзреНрдпреЗ. рдЖрдгрд┐ /etc/apt/sources.list рд╡рд░ рдкрд╛рд╣рддрд╛рдирд╛ рдорд▓рд╛ рд╕рдордЬрд▓реЗ рдХреА рддреЗ /mnt/cdrom рдордзреНрдпреЗ рдорд╛рдЙрдВрдЯ рдХрд░рдгреЗ рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗ. рдкрдг рдорд▓рд╛ /etc/os-release рд╕рд╛рдкрдбрд▓реЗ рдирд╛рд╣реА. рдкрд░рдВрддреБ рд╕рд╛рдордЧреНрд░реА 3.0-rc36 рд╕рд╣ /etc/mcst-рдЖрд╡реГрддреНрддреА рдЖрд╣реЗ. 3.0 рд╣реА рдХрджрд╛рдЪрд┐рдд рдЖрд╡реГрддреНрддреА рдЖрд╣реЗ - рддреА рдмрд╕рддреЗ рдЕрд╕реЗ рджрд┐рд╕рддреЗ, рдкрд░рдВрддреБ rc36? рд╕рд░реНрд╡рд╕рд╛рдзрд╛рд░рдгрдкрдгреЗ, рддреГрддреАрдп-рдкрдХреНрд╖ рд╕реЙрдлреНрдЯрд╡реЗрдЕрд░ рдмрд╣реБрдзрд╛ рд╣реЗ рд╡рд┐рддрд░рдг рд╢рд╛рд╕реНрддреНрд░реАрдп рдкрджреНрдзрддреАрдиреЗ рдУрд│рдЦреВ рд╢рдХрдгрд╛рд░ рдирд╛рд╣реА.

рд░реВрдЯ рд╡рд┐рднрд╛рдЬрдирд╛рдордзреНрдпреЗ, /mcst рдбрд┐рд░реЗрдХреНрдЯреНрд░реАрдиреЗ рдорд╛рдЭреЗ рд▓рдХреНрд╖ рд╡реЗрдзрд▓реЗ, рдЖрдгрд┐ рддреЗрдереЗ, рдмреБрдбрддреНрдпрд╛ рд╣реГрджрдпрд╛рдиреЗ, рдорд▓рд╛ /mcst/backup рд╕рд╛рдкрдбрд▓рд╛. рдореНрд╣рдгрдЬреЗрдЪ, рдПрдХ рдмреЕрдХрдЕрдк рд╕рд╛рдзрди рдЖрд╣реЗ рдЖрдгрд┐ рддреЗ рд╕рд┐рд╕реНрдЯрдордордзреНрдпреЗ рдЕрдВрдЧрднреВрдд рдЖрд╣реЗ! "рдЫрд╛рди," рдореА рд╡рд┐рдЪрд╛рд░ рдХреЗрд▓рд╛, "рд╣реЗ рдХрд╕реЗ рдХрд╛рд░реНрдп рдХрд░рддреЗ рддреЗ рдкрд╛рд╣реВрдпрд╛!"

рдЕрд╕реЗ рджрд┐рд╕реВрди рдЖрд▓реЗ рдХреА 4Kb рдмреЕрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ /mcst/bin/backup рдЖрд╣реЗ рдЬреА рдлрд╛рдЗрд▓ рдХреЙрдкреА рдХрд░рддреЗ. рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рддрдкрдгреЗ - /mcst/backup рдирд┐рд░реНрджреЗрд╢рд┐рдХреЗрдд. рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдордзреНрдпреЗ рдореА rsync рдХрдорд╛рдВрдб рдкрд╛рд╣рдгреНрдпрд╛рдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗрд▓реА рд╣реЛрддреА, рдкрд░рдВрддреБ рддреА рдбреАрдлреЙрд▓реНрдЯ рдХреЙрдиреНрдлрд┐рдЧрд░реЗрд╢рдирдордзреНрдпреЗ рдирд╛рд╣реА. рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдлрдХреНрдд рдлрд╛рдЗрд▓реНрд╕ рдХреЙрдкреА рдХрд░рддреЗ. рдХрдорд╛рдВрдб рдпрд╛рд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА рджрд┐рд╕рддреЗ:

cp -rpdx <file backup> <file>

рд╕рдВрдкреВрд░реНрдг рдлрд╛рдЗрд▓ /mcst/bin/backup рдпреЗрдереЗ рдЖрд╣реЗрдореА рддреБрдореНрд╣рд╛рд▓рд╛ рддрд╛рдмрдбрддреЛрдм рдЪреЗрддрд╛рд╡рдгреА рджреЗрддреЛ рдХреА рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реНрдгрдкрдгреЗ рд╕рдордЬрдгреНрдпрд╛рд╕рд╛рдареА рдкреБрд░реЗрд╕реЗ рдирд╛рд╣реА. рд╣реЗ /mcst/bin/source рд╡рд░реВрди рдлрдВрдХреНрд╢рдиреНрд╕ рдЦреЗрдЪрддреЗ, рдЬреЗ рдлрдВрдХреНрд╢рдиреНрд╕рдЪреНрдпрд╛ рд▓рд╛рдпрдмреНрд░рд░реАрд╕рд╛рд░рдЦреЗ рдХрд╛рд╣реАрддрд░реА рдЖрд╣реЗ. рдореА рддреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдирд╛рд╣реА (44KB).

#!/bin/bash

unalias -a

set +vx

source $(dirname $0)/source
[[ $? != 0 ]] && exit 1

OPTIONS="hvcdrRil:L:"

usage()
{
	echo "Usage: $PROG_NAME [-$OPTIONS] [backup]"
	echo "    h            - this help"
	echo "    v vv vvv     - verbose, very verbose, extremly verbose"
	echo "    c            - create backup"
	echo "    d            - diffs backup and system"
	echo "    r            - recovery system"
	echo "    R            - remove backup"
	echo "    i            - prompt before backup removing"
	echo "    l list       - additional backup files list"
	echo "    L list       - global backup files list"
	echo "    backup       - backup directory, default /mcst/backup/backup"
}

init_prog()
{
	typeset flg=0

	while getopts $OPTIONS opt
	do
		case $opt in
		h ) usage; exit 0;;
		v ) (( verbose = verbose + 1 )); set_verbose;;
		c ) flg=1; c_flg=1;;
		d ) flg=1; d_flg=1;;
		r ) flg=1; r_flg=1;;
		R ) flg=1; R_flg=1;;
		i ) i_flg=1;;
		l ) l_flg=1; list_arg="$list_arg $OPTARG";;
		L ) L_flg=1; LIST_arg="$LIST_arg $OPTARG";;
		* ) usage "Invalid option"; exit 1;;
		esac
	done

	set_verbose

	check_su

	init_variables

	shift $((OPTIND-1))

	if (( $# > 1 ))
	then
		echo_fatal "invalid arguments number, exp 0|1, act $#"
		exit 1
	fi

	[[ $# = 1 ]] && BACKUP=$1

	echo "Backup directory is $BACKUP"

	if [[ $L_flg = 1 ]]
	then
		backup_list="$LIST_arg"
	elif [[ $c_flg != 1 && $R_flg != 1 ]]
	then
		get_output_cmd "cat $BACKUP/$BACKUP_LIST_NAME"
		backup_list="$output_cmd"
	else
		get_output_cmd "get_backup_list"
		backup_list="$output_cmd"
	fi

	if [[ $l_flg = 1 ]]
	then
		backup_list="$backup_list $list_arg"
	fi

	if [[ $flg = 0 ]]
	then
		if [[ -d $BACKUP ]]
		then
			ls -laR $BACKUP
		else
			echo_info "Cannot access $BACKUP"	
		fi
		echo "backup_list=$backup_list"
		exit 0
	fi

###	echo "Backup list: $backup_list"
}

create_file()
{
	typeset f=$1 fr=$2
	typeset fb

	[[ -z $fr ]] && fr=$f

	fb=${f#/}

	fb=$BACKUP/$fb

	xcmd="rm -rf $fb"
	set_cmd "$xcmd"
	run_cmd

	xcmd="mkdir -p $fb"
	set_cmd "$xcmd"
	run_cmd

	if [[ -a $fr ]]
	then
		xcmd="cp -rpdx $fr $fb/file"
		set_cmd "$xcmd"
		run_cmd

		xcmd="touch $fb/create"
		set_cmd "$xcmd"
		run_cmd
	else
		xcmd="touch $fb/delete"
		set_cmd "$xcmd"
		run_cmd
	fi
}

diff_file()
{
	typeset f=$1
	typeset fb

	fb=${f#/}

	fb=$BACKUP/$fb

	if [[ -f $fb/delete ]]
	then
		echo_info "$f absent"
	elif [[ -f $fb/create ]]
	then
#		echo "state: create $f"

		if [[ ! -a $f ]]
		then
			echo_info "cannot access $f"
		else
			xcmd="diff -r $f $fb/file"
			echo "$xcmd"
			set_cmd "$xcmd" "" "0 1 2"
			run_cmd
		fi
	else
		echo_fatal "wrong $f backup"
		exit 1
	fi
}

recovery_file()
{
	typeset f=$1
	typeset fb

	fb=${f#/}

	fb=$BACKUP/$fb

	if [[ ! -a $fb ]]
	then
		echo_fatal "cannot access $fb"
		exit 1
	fi

	xcmd="rm -rf $f"
	set_cmd "$xcmd"
	run_cmd

	if [[ -f $fb/delete ]]
	then
		:
	elif [[ -f $fb/create ]]
	then
		xcmd="cp -rpdx $fb/file $f"
		set_cmd "$xcmd"
		run_cmd
	else
		echo_fatal "wrong $fb backup"
		exit 1
	fi
}

remove_backup()
{
	echo "Remove backup"

	if [[ ! -d $BACKUP ]]
	then
		echo_info "Cannot access $BACKUP"
		return
	fi

	if [[ ! -f $BACKUP/$BACKUP_LIST_NAME ]]
	then
		echo_fatal "$BACKUP_LIST_NAME absent, remove backup manually"
		exit 0
	fi

	answer=
	if [[ $i_flg = 1 ]]
	then
		echo -n "Remove $BACKUP directory (yes/...)?"
		read answer
	else
		answer=yes
	fi
	if [[ $answer = yes ]]
	then
		xcmd="rm -rf $BACKUP"
		set_cmd "$xcmd"
		run_cmd
	fi
}

recovery_backup()
{
	echo "Recovery system from $BACKUP" 

	for f in $backup_list
	do
		get_output_cmd "get_mount_point $f"
		mnt=$output_cmd
		get_output_cmd "is_ro_mounted $mnt"
		mnt=$output_cmd
		if [[ ! -z $mnt ]]
		then
			remount_rw_fs $mnt
		fi 
		recovery_file $f
		if [[ ! -z $mnt ]]
		then
			remount_ro_fs $mnt
		fi 
	done

	echo "The system is ready, reboot the system manually" 
}

create_backup()
{
		echo "Create backup"

		xcmd="mkdir -pm0777 $BACKUP"
		set_cmd "$xcmd"
		run_cmd

		for v in $backup_list
		do
			f=${v%%:*}
			backup_list2="$backup_list2 $f"
			fr=${v#*:}
			create_file $f $fr
		done
		echo "$backup_list2" >$BACKUP/$BACKUP_LIST_NAME
}

diff_backup()
{
	echo "Diffs system and backup" 

	if [[ ! -d $BACKUP ]]
	then
		echo_fatal "cannot access $BACKUP"
		exit 1
	fi

	for f in $backup_list
	do
		diff_file $f
	done
}

main()
{
	typeset f mnt mnt_list answer

	if [[ $R_flg = 1 ]]
	then
		remove_backup
	fi

	if [[ $r_flg = 1 ]]
	then
		recovery_backup
	fi

	if [[ $c_flg = 1 ]]
	then
		create_backup
	fi

	if [[ $d_flg = 1 ]]
	then
		diff_backup
	fi
}

init_prog "$@"

main

exit 0

рдЬрд░реА, рдХрджрд╛рдЪрд┐рдд рдорд▓рд╛ рдХрд╛рд╣реАрддрд░реА рд╕рдордЬрд▓реЗ рдирд╛рд╣реА? рдХрджрд╛рдЪрд┐рдд рдХреЛрдгреАрддрд░реА рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рд╕реНрдкрд╖реНрдЯ рдХрд░реВ рд╢рдХреЗрд▓: рд╣реА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реБрд░рдХреНрд╖рд┐рдд рдЖрдгрд┐ рд╡рд┐рд╢реНрд╡рд╛рд╕рд╛рд░реНрд╣ рдбреЗрдЯрд╛ рдмреЕрдХрдЕрдк рдХрд╢реА рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддреЗ? [TBD]

rsync, рддрд╕реЗ, рдНрдб-рдСрди рдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ. рднрд╛рдВрдбрд╛рд░. рдЖрд╡реГрддреНрддреА рей.рез.рей. рдорд▓рд╛ рд╡рд╛рдЯрддрдВ /mcst/bin/backup рдНрдкреНрд▓рд┐рдХреЗрд╢рдирд╕рд╛рдареА rsync рд╡рд╛рдкрд░рдгреЗ рд╣рд╛ рдЕрдЬреВрди рдЪрд╛рдВрдЧрд▓рд╛ рдкрд░реНрдпрд╛рдп рдЖрд╣реЗ.

рдкреБрдвреЗ, рдореА рдПрдХ рдирд╡реАрди рдареЗрд╡рдгреНрдпрд╛рдЪрд╛ рдирд┐рд░реНрдгрдп рдШреЗрддрд▓рд╛ рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡реАрдо рдПрдЬрдВрдЯ. рдХреЛрдгреАрддрд░реА рд╡рд┐рдЪрд╛рд░реЗрд▓: "рд╡реАрдо рдЖрдгрд┐ рдЖрдпрд╛рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрдирд╛рдЪрд╛ рддреНрдпрд╛рдЪреНрдпрд╛рд╢реА рдХрд╛рдп рд╕рдВрдмрдВрдз рдЖрд╣реЗ?" рд╣реЛрдп, рддреЗ рд░рдЬрд┐рд╕реНрдЯрд░рдордзреНрдпреЗ рдирд╛рд╣реА, рдкрд░рдВрддреБ рддреЗ FSTEC рджреНрд╡рд╛рд░реЗ рдкреНрд░рдорд╛рдгрд┐рдд рдЖрд╣реЗ, рдпрд╛рдЪрд╛ рдЕрд░реНрде рдкрд░реНрдпрд╛рдпрд╛рдВрдЪреНрдпрд╛ рдЕрдиреБрдкрд╕реНрдерд┐рддреАрдд рддреЗ рд╡рд╛рдкрд░рд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдкрд╛рд╕реВрди рдкрд░реНрдпрд╛рдпреА рдкрдВрдзрд░рд╛ рдорд┐рдирд┐рдЯреЗ рдЦрд░реНрдЪ рдиреЛрдВрджрдгреА, рдорд▓рд╛ тАЬрдмреЕрдХрдЕрдктАЭ рдпрд╛ рд╢рдмреНрджрд╛рд╕рд╛рдареА 3 рджреБрд╡реЗ рд╕рд╛рдкрдбрд▓реЗ (тАЬрд░рд┐рдЭрд░реНрд╡реНрд╣тАЭ рдпрд╛ рд╢рдмреНрджрд╛рд╕рд╛рдареА рдорд╛рдЭреНрдпрд╛ рдкреНрд░рд╢реНрдирд╛рд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рд╣реА). рдореА рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдореНрд╕рдЪреЗ рд╕рдЦреЛрд▓ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА, рдореНрд╣рдгреВрди рдореА рд▓рд┐рдирдХреНрд╕ рдЪрд╛рд▓рд╡рдгрд╛рд▒реНрдпрд╛ рдорд╢реАрдиреНрд╕рдЪрд╛ рдмреЕрдХрдЕрдк рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА рддреЗ рдХрд┐рддреА рдпреЛрдЧреНрдп рдЖрд╣реЗрдд рд╣реЗ рдард░рд╡рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдгрд╛рд░ рдирд╛рд╣реА. рдЬреНрдпрд╛рд▓рд╛ рддреНрдпрд╛рдЪреА рдЧрд░рдЬ рдЖрд╣реЗ рддреЛ рд╕реНрд╡рддрдГрдЪрд╛ рдирд┐рд╖реНрдХрд░реНрд╖ рдХрд╛рдвреЗрд▓ рдЖрдгрд┐ рдЯрд┐рдкреНрдкрдгреНрдпрд╛рдВрдордзреНрдпреЗ рд╕рд╛рдорд╛рдпрд┐рдХ рдХрд░реЗрд▓.

рд╕реНрдЯреЗрдЬ рддреАрди - рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡реАрдо рдПрдЬрдВрдЯрдЪреА рд╕реНрдерд╛рдкрдирд╛.
рддрд░, рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡реАрдо рдПрдЬрдВрдЯрдордзреНрдпреЗ рджреЛрди рдкреЕрдХреЗрдЬреЗрд╕ рдЕрд╕рддрд╛рдд: рд╡реАрдореНрд╕рдиреЕрдк рдХрд░реНрдирд▓ рдореЙрдбреНрдпреВрд▓ (рддрд╕реЗ, рд╕реНрд░реЛрдд рдпреЗрдереЗ) рдЖрдгрд┐ рд╡реАрдо рдкреЕрдХреЗрдЬрдЪреНрдпрд╛ рд╕реНрд╡рд░реВрдкрд╛рдд рдорд╛рд▓рдХреА рд╡рд╛рдкрд░рдХрд░реНрддрд╛-рд╕реНрдкреЗрд╕ рдХреЛрдб.

рдХрд░реНрдирд▓ рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддрд╛рдирд╛ рдПрдХ рдЫреЛрдЯреА рд╕рдорд╕реНрдпрд╛ рд╣реЛрддреА - рдЧрд╣рд╛рд│ dkms рдкреЕрдХреЗрдЬ. рд╣реА рдПрдХ рд╕реЗрд╡рд╛ рдЖрд╣реЗ рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рд╕реНрддреНрд░реЛрддрд╛рдкрд╛рд╕реВрди рдХрд░реНрдирд▓ рдореЙрдбреНрдпреВрд▓ рддрдпрд╛рд░ рдХрд░рдгреНрдпрд╛рд╕ рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ. рдирд┐рдпрдорд╛рдиреБрд╕рд╛рд░, рддреЗ рд╕рд░реНрд╡ рдбреЗрдм рд╡рд┐рддрд░рдгрд╛рдВрд╡рд░ рдЙрдкрд▓рдмреНрдз рдЖрд╣реЗ. рдорд▓рд╛ рддреЗ рдерд░реНрдб-рдкрд╛рд░реНрдЯреА рдбреЗрдм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реАрдордзреВрди рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ. рдорд▓рд╛ рдЖрдирдВрдж рджреЗрдгрд╛рд░реА рдПрдХ рдЧреЛрд╖реНрдЯ рдЕрд╢реА рдЖрд╣реЗ рдХреА рдкреЕрдХреЗрдЬ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд╡рд░ рдЕрд╡рд▓рдВрдмреВрди рдирд╛рд╣реА, рдореНрд╣рдгреВрди рддреЗ рдореВрд│рд╕рд╛рд░рдЦреЗрдЪ рдмрд╕рддреЗ. рддреЗ рдЙрдкрд▓рдмреНрдз рдкреЕрдХреЗрдЬреЗрд╕рдЪреНрдпрд╛ рдпрд╛рджреАрдордзреНрдпреЗ рдХрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдирд╛рд╣реА рдХрд┐рдВрд╡рд╛ рддреНрдпрд╛рдРрд╡рдЬреА рд╡рд┐рдХрд╕рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдирд╛рд╣реА [TBD]? рдХрджрд╛рдЪрд┐рдд рдЕрд╕реЗ рдЧреГрд╣реАрдд рдзрд░рд▓реЗ рдЬрд╛рддреЗ рдХреА рдХреЛрдгреАрд╣реА рдПрдорд╕реАрдПрд╕рдЯреА рдирд╕рд▓реЗрд▓реЗ рдХрд░реНрдирд▓ рдореЙрдбреНрдпреВрд▓ рддрдпрд╛рд░ рдХрд░реВ рдирдпреЗ рдЖрдгрд┐ рдЪрд╛рд▓рд╡реВ рдирдпреЗ. рдпреЗрдереЗ рдЦрд░реЛрдЦрд░ рдПрдХ рд╡рд┐рд╕рдВрдЧрддреА рдЖрд╣реЗ - рдХрд╛рд░рдг рддреЗрдереЗ рд▓рд┐рдирдХреНрд╕-рд╣реЗрдбрд░ рдЖрд╣реЗрдд. рдореНрд╣рдгрдЬреЗрдЪ, рдореЙрдбреНрдпреВрд▓, рдЗрдЪреНрдЫрд┐рдд рдЕрд╕рд▓реНрдпрд╛рд╕, рд╣рд╛рддрд╛рдиреЗ рдПрдХрддреНрд░ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ рдЖрдгрд┐ рдорд╢реАрди рд╕реБрд░реВ рдЭрд╛рд▓реНрдпрд╛рд╡рд░ рд╕реНрдХреНрд░рд┐рдкреНрдЯрджреНрд╡рд╛рд░реЗ рд▓реЙрдиреНрдЪ рдХреЗрд▓реЗ рдЬрд╛рдК рд╢рдХрддреЗ. рдорд▓рд╛ рд╡рд╛рдЯрддреЗ рдХреА рддреБрдореНрд╣реА MCST [TBD] рдХрдбреВрди рд╡рд╛рд░рдВрд╡рд╛рд░ рдЕрдкрдбреЗрдЯреНрд╕рдЪреА рдЕрдкреЗрдХреНрд╖рд╛ рдХрд░реВ рдирдпреЗ.

"рдареАрдХ рдЖрд╣реЗ, рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХреЗрд▓реЗ рдЖрд╣реЗ - рд╕рд░реНрд╡рд╛рдд рдХрдареАрдг рднрд╛рдЧ рд╕рдВрдкрд▓рд╛ рдЖрд╣реЗ," рдорд▓рд╛ рд╡рд╛рдЯрд▓реЗ... рдбреЗрдм рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрд╕рд╛рдареА рд╡реАрдо рдкреЕрдХреЗрдЬ amd64 рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА рдЖрд╣реЗ рдЖрдгрд┐ Elbrus OS рдордзреНрдпреЗ x86_64 [TBD] рдкреНрд▓реЕрдЯрдлреЙрд░реНрдо рдЖрд╣реЗ. рдлрд░рдХ, рдЕрд░реНрдерд╛рддрдЪ, рдлрдХреНрдд рдирд╛рд╡рд╛рдд рдЖрд╣реЗ, рдкрд░рдВрддреБ рд╣рд╛ рдлрд░рдХ рддреГрддреАрдп-рдкрдХреНрд╖ рдбреЗрдм рд░реЗрдкреЙрдЬрд┐рдЯрд░реАрдЬрдордзреАрд▓ рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡ рдкреЕрдХреЗрдЬреЗрд╕ Elbrus OS рд╢реА рд╡рд┐рд╕рдВрдЧрдд рдмрдирд╡рддреЛ. рд╣рд╛ рддреНрд░рд╛рд╕рджрд╛рдпрдХ рдЧреИрд░рд╕рдордЬ рд╕рд╣рдЬрдкрдгреЗ рджреВрд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ: рдлрдХреНрдд рдкреЕрдХреЗрдЬ рд╡реЗрдЧрд│реЗ рдХрд░рд╛, рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рдЪреА рдорд╛рд╣рд┐рддреА рджреБрд░реБрд╕реНрдд рдХрд░рд╛ рдЖрдгрд┐ рдкреБрдиреНрд╣рд╛ рдПрдХрддреНрд░ рдХрд░рд╛. рддреЗ рдХрд╕реЗ рдХрд░рд╛рд╡реЗ рдЧреБрдЧрд▓ рдХреЗрд▓реЗ рддреНрд╡рд░рд┐рдд.

mkdir tmp
dpkg-deb -R original.deb tmp
# edit DEBIAN/postinst
dpkg-deb -b tmp fixed.deb

рджреБрд╕рд░реА рд╕рдорд╕реНрдпрд╛ рдореНрд╣рдгрдЬреЗ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡. рдЖрд╡рд╢реНрдпрдХ рдлрд╛рдЗрд▓реНрд╕ рдЖрд╣реЗрдд рдЕрд╕реЗ рджрд┐рд╕рддреЗ, рдкрд░рдВрддреБ рдкреЕрдХреЗрдЬреЗрд╕ рдирд╛рд╣реАрдд. рдкреЕрдХреЗрдЬрдЪреА рдирд╛рд╡реЗ рддреНрдпрд╛рдВрдЪреНрдпрд╛ тАЬрдЗрдореНрдкреЛрд░реНрдЯреЗрдб рдЕреЕрдирд╛рд▓реЙрдЧреНрд╕тАЭ рдкреЗрдХреНрд╖рд╛ рд╡реЗрдЧрд│реА рдЕрд╕рд▓реНрдпрд╛рдЪреА рдЫрд╛рдк рд╣реЛрддреА. рдХрджрд╛рдЪрд┐рдд рд▓рд╛рдпрдмреНрд░рд░реА рд╡реЗрдЧрд│реНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рдкреЕрдХреЗрдЬ рдХреЗрд▓реЗрд▓реА рдЖрд╣реЗрдд. рдореА рдЬрд╛рд╕реНрдд рддрдкрд╢реАрд▓рд╛рдд рдЧреЗрд▓реЛ рдирд╛рд╣реА, рдЬрд╡рд│рдЬрд╡рд│ рд╕рд░реНрд╡ рдЕрд╡рд▓рдВрдмрд┐рддреНрд╡ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реЗ рдЖрдгрд┐ рд╕реНрдерд╛рдкрдирд╛ рдкреБрдвреЗ рдЧреЗрд▓реА.

рдирдВрддрд░ рд╕реЗрд╡рд╛ рдкреНрд░рд╛рд░рдВрдн рдХреЛрдбрд╕рд╣ рд╕рдорд╕реНрдпрд╛ рдЙрджреНрднрд╡рд▓реНрдпрд╛. рд╕реНрдХреНрд░рд┐рдкреНрдЯ /lib/init/vars.sh рдЧрд╣рд╛рд│ рд╣реЛрддреА. рдХрд╛рд╣реА рдХрд╛рд░рдгрд╛рд╕реНрддрд╡, Elbrus рддреНрдпрд╛рд╢рд┐рд╡рд╛рдп рд╡реНрдпрд╡рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЛ, рдореНрд╣рдгреВрди рдЖрдореНрд╣реА рддреЗ рджреЗрдЦреАрд▓ рдХрд╛рдвреВрди рдЯрд╛рдХреВ. рдкреБрдвреЗ, рдЖрдореНрд╣рд╛рд▓рд╛ рд╕рдВрджреЗрд╢ рдЖрдЙрдЯрдкреБрдЯ рдлрдВрдХреНрд╢рди рдкреБрдирд░реНрд╕реНрдерд┐рдд рдХрд░рд╛рд╡реЗ рд▓рд╛рдЧрд▓реЗ: log_daemon_msg рдЖрдгрд┐ log_end_msg рдлрдВрдХреНрд╢рдиреНрд╕ рдЧрд╣рд╛рд│ рдЖрд╣реЗрдд. /lib/lsb/init-functions рдлрд╛рдИрд▓рдордзреНрдпреЗ рдлрд┐рд░рд▓реНрдпрд╛рдирдВрддрд░, рдорд▓рд╛ log_success_msg рдлрдВрдХреНрд╢рди рд╕рд╛рдкрдбрд▓реЗ - рддреЗ рдкреНрд░рдпреЛрдЧрд╛рдВрд╕рд╛рдареА рдЖрдордЪреНрдпрд╛рд╕рд╛рдареА рдЪрд╛рдВрдЧрд▓реЗ рдЕрд╕реЗрд▓. рддрд╕реЗ, /lib/lsb/init-functions рдлрд╛рдЗрд▓рдордзреНрдпреЗ [TBD] рдлрд╛рдЗрд▓рдЪреНрдпрд╛ рд╕реБрд░реБрд╡рд╛рддреАрд▓рд╛ тАЬ# Source SuSEтАЩs rc functionsтАЭ рд╣реА рдУрд│ рдЖрд╣реЗ.

рдлрд╛рдЗрд▓рд╕рд╣ рдкреЕрдХреЗрдЬрдЪреНрдпрд╛ рдЕрд╢рд╛ рдвреЛрдмрд│ рдкреНрд░рдХреНрд░рд┐рдпреЗрдирдВрддрд░, NFS рд╢реЗрдЕрд░рд╡рд░ рд╕рдВрдкреВрд░реНрдг-рдорд╢реАрди рдмреЕрдХрдЕрдк рдпрд╢рд╕реНрд╡реАрд░рд┐рддреНрдпрд╛ рд▓рд╛рдБрдЪ рдХреЗрд▓реЗ рдЧреЗрд▓реЗ. рдмреЕрдХрдЕрдк рдорд╛рдЙрдВрдЯ рджреЗрдЦреАрд▓ рдпрд╢рд╕реНрд╡реА рдЭрд╛рд▓реЗ. рдореНрд╣рдгреВрди, рдорд╛рдЭрд╛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЖрд╣реЗ рдХреА рдПрд▓реНрдмреНрд░рд╕ рдкреАрдбреАрдХреЗрд╕рд╣ рдорд╢реАрдирдЪрд╛ рдмреЕрдХрдЕрдк рдШреЗрдгреНрдпрд╛рд╕рд╛рдареА, рдХреЛрдгрддреНрдпрд╛рд╣реА рдмрдВрдзрдирд╛рд╢рд┐рд╡рд╛рдп рдбрд╛рдЙрдирд▓реЛрдб рдХреЗрд▓реЗрд▓реЗ "рдЕрд╕реЗрдЪ" рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡реАрдо рдПрдЬрдВрдЯ рдирд┐рд╢реНрдЪрд┐рддрдкрдгреЗ рдпреЛрдЧреНрдп рдЖрд╣реЗ. рдлрд╛рдИрд▓рд╕рд╣ рд╕рд░реНрд╡ рдмрджрд▓ рдХреЗрд▓реНрдпрд╛рдирдВрддрд░рд╣реА.

рдЕрд░реНрдерд╛рдд, рдПрд▓реНрдмреНрд░рд╕ рдУрдПрд╕ рдбрд┐рд╕реНрдЯреНрд░рд┐рдмреНрдпреБрд╢рди рдХрд┐рдЯ рдФрдкрдЪрд╛рд░рд┐рдХрдкрдгреЗ рд╕рдорд░реНрдерд┐рдд рдирд╛рд╣реА, рдХрд╛рд░рдг рддреЗ рд╕рдорд░реНрдерд┐рдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛рдВрдЪреНрдпрд╛ рдпрд╛рджреАрдордзреНрдпреЗ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдХреЗрд▓реЗрд▓реЗ рдирд╛рд╣реА. рдпрд╛рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд, рд▓рд┐рдирдХреНрд╕рд╕рд╛рдареА рд╡реАрдо рдПрдЬрдВрдЯрдЪреА QA рд╡рд┐рднрд╛рдЧрд╛рджреНрд╡рд╛рд░реЗ рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЧреЗрд▓реА рдирд╛рд╣реА, рдореНрд╣рдгреВрди рддреНрдпрд╛. рдХреЛрдгрддреЗрд╣реА рд╕рдорд░реНрдерди рдирд╛рд╣реА (рдирд┐рджрд╛рди рд▓реЗрдЦрд╛рдЪреНрдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдЪреНрдпрд╛ рд╡реЗрд│реА).

рдорд▓рд╛ рдЖрд╢рд╛ рдЖрд╣реЗ рдХреА рдЬреЗ 334 рдЬреВрди 29.06.2017 рдЪреНрдпрд╛ рдСрд░реНрдбрд░ рдХреНрд░рдорд╛рдВрдХ XNUMX рдЪреА рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреА рдХрд░рдгреНрдпрд╛рдЪрд╛ рдкреНрд░рдпрддреНрди рдХрд░рдд рдЖрд╣реЗрдд рддреНрдпрд╛рдВрдЪреНрдпрд╛рд╕рд╛рдареА рд╣рд╛ рд▓реЗрдЦ рдЙрдкрдпреБрдХреНрдд рдард░реЗрд▓. рдорд╛рдЭреЗ рддреБрдордЪреНрдпрд╛рд╕рд╛рдареА... [TBD].

рд╕реНрддреНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛