Skip to content

neobht/uird

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

725 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

UIRD - Unified Init Ram Disk system

Унифицированная систСма ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… Linux систСм.

Join the chat at https://gitter.im/uird/discussion

Π‘Π°Π·ΠΎΠ²ΠΎΠ΅ описаниС основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ²

UIRD - это Ρ€Π°Π·Π½ΠΎΠ²ΠΈΠ΄Π½ΠΎΡΡ‚ΡŒ initrd, Π΅Π³ΠΎ Π·Π°Π΄Π°Ρ‡Π° ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΠΈΠ· слоёв aufs/overlayfs ΠΊΠΎΡ€Π½Π΅Π²ΡƒΡŽ Ρ„Π°ΠΉΠ»ΠΎΠ²ΡƒΡŽ систСму ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ /sbin/init (systemd) с этой ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ систСмой. Π’ основС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ UIRD Π»Π΅ΠΆΠΈΡ‚ Π½Π°Π±ΠΎΡ€ скриптов ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ dracut (ΠΌΠΎΠ΄ΡƒΠ»ΠΈ base, kernel-modules), сцСнарий ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ uird-init ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΊ Π½Π΅ΠΌΡƒ livekitlib (Π΄ΠΎΡ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ Π°Π½Π°Π»ΠΎΠ³ liblinuxlive, livekitlib ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Slax).

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ отличия ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΉ initrd для ΠΌΠΎΠ΄ΡƒΠ»ΡŒΠ½Ρ‹Ρ… систСм схоТих ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΠ².

* ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ привязки ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌΡƒ дистрибутиву
* ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ привязки ΠΊ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°ΠΌ для поиска источников
* Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ практичСски Π»ΡŽΠ±Ρ‹Ρ… источников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π² linux 
* ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… сСтСвых ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ»ΠΎΠ² для Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ ΠΏΠΎ сСти
* Адаптация UIRD ΠΏΠΎΠ΄ Π²Π°ΡˆΡƒ ОБ сводится ΠΊ написанию ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки

Π’Π²ΠΈΠ΄Ρƒ мноТСствСнности ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ядра Π²Π²Π΅Π΄Π΅Π½ прСфикс ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² 'uird' (Unified Init Ram Disk):

* uird.ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ - ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π½ΠΎΠ²ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°ΠΌΠ΅Π½ΠΈΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ;
* uird.ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€+=Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ - Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊ списку Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ

Π’ настоящий ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… дСсятков, Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ ΠΈΠ· Π½ΠΈΡ… лишь Ρ€Π°ΡΡˆΠΈΡ€ΡΡŽΡ‚ Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π» Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ возмоТностями.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹

* uird.ro[+]=                - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ RO
* uird.rw[+]=                - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ RW
* uird.cp[+]=                - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, содСрТимоС ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… копируСтся Π² ΠΊΠΎΡ€Π΅Π½ΡŒ
* uird.copy2ram[+]=          - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² RAM
* uird.load[+]=              - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½Π° этапС Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
* uird.noload[+]=            - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€ΠΎΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π²ΠΎ врСмя Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ
* uird.from[+]=              - источники, Π³Π΄Π΅ Π»Π΅ΠΆΠ°Ρ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ для систСмы
* uird.home=                 - источник, Π³Π΄Π΅ хранятся домашниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ
* uird.changes=              - источник, Π³Π΄Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ пСрсистСнтныС измСнСния
* uird.mode=MODE             - Ρ€Π΅ΠΆΠΈΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ сохранСниями (clean, clear, changes, machines)

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для Π±ΠΎΠ»Π΅Π΅ слоТных ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ

* uird.cache[+]=             - источники, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ стоит ΡΠΈΠ½Ρ…Ρ€ΠΎΠ½ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ
* uird.copy2cache[+]=        - Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ для ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΊΠΎΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ Π² КЭШ
* uird.homes[+]=             - источники, Π³Π΄Π΅ хранятся домашниС Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ (ΠΎΠ±ΡŠΠ΅Π΄ΠΈΠ½ΡΡŽΡ‚ΡΡ AUFS / OVERLAYFS)
* uird.mounts=               - источники , ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ смонтированы Π² ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Π΅ Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования
* uird.find_params[+]=       - ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ find ΠΏΡ€ΠΈ поискС ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: -maxdepth,2)
* uird.help                  - ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ подсказку ΠΏΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ UIRD
* uird.break=STAGE           - остановка Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π½Π° стадии STAGE ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Ρ€Π΅ΠΆΠΈΠΌΠ° ΠΎΡ‚Π»Π°Π΄ΠΊΠΈ (debug)
* uird.scan=                 - поиск установлСнных OC ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² для опрСдСлСния ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² uird
* uird.swap=                 - список SWAP Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ² ΠΈ/ΠΈΠ»ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ, Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΡŒ Π² спискС ";" ΠΈΠ»ΠΈ ","
* uird.syscp[+]=             - список Ρ„Π°ΠΉΠ»ΠΎΠ² (ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ²) для копирования ΠΈΠ· UIRD Π² систСму /ΠΏΡƒΡ‚ΡŒ/Ρ„Π°ΠΉΠ»::/ΠΏΡƒΡ‚ΡŒ/ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³
* uird.basecfg=              - располоТСниС Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° basecfg.ini
* uird.config=               - располоТСниС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° систСмы MagOS.ini
* uird.sgnfiles[+]=          - пСрСчислСниС Ρ„Π°ΠΉΠ»ΠΎΠ²-ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² для поиска источников ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² uird.from= Π² соотвСтсвии с ΠΈΡ… порядком пСрСчислСния
* uird.ip=                   - IP:GW:MASK, Ссли Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½, Ρ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ DHCP
* uird.netfsopt[+]=          - Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΡ†ΠΈΠΈ монтирования сСтСвых Π€Π‘: sshfs,nfs,curlftpfs,cifs
* uird.aria2ram=             - список источников, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΠ· сСти Π² RAM Π΄ΠΎ Π½Π°Ρ‡Π°Π»Π° поиска uird.from
* uird.freemedia             - ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄ΠΈΡ‚ΡŒ (Ρ€Π°Π·ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ) источники, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ совмСстно с uird.copy2ram
* uird.force                 - ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Ρ‚ΡŒ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ, Π½Π΅ задавая вопросов, Ссли источник Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½
* uird.run[+]=               - запуск Π²Π½Π΅ΡˆΠ½ΠΈΡ… исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ²
* uird.rootfs                - Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΈ Ρ‚ΠΈΠΏ roots (tmpfs/zram)
* uird.union=overlay         - ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ overlayfs вмСсто aufs
* uird.shutdown              - ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ /run/initramfs, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ systemd ΠΏΡ€ΠΈ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ систСмы, пСрСдавая Ρ‚ΡƒΠ΄Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅
* uird.preinit               - Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ini Ρ„Π°ΠΉΠ»Π°, Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² uird.config
* uird.hide                  - Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ сокрытия Ρ‚ΠΎΡ‡ΠΊΠΈ монтирования MEMORY (ΠΏΠΎΠ»Π΅Π·Π½ΠΎ для Ρ€Π΅ΠΆΠΈΠΌΠ° kiosk)
* quickshell, qs             - консоль Π½Π° Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΌ этапС Ρ€Π°Π±ΠΎΡ‚Ρ‹ uird-init
* qse                        - консоль Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ uird-init
* debug                      - ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ ΠΈ приостановка uird-init Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… этапах Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’ качСствС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ shell:

* uird.from="/MagOS;$( eval [ $(date +%u) -gt 5 ] && echo /MagOS-Data)" - ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ MagOS-Data Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹ΠΌ
* uird.changes="$(mkdir -p /MagOS-Data/changes && echo /MagOS-Data/changes)"
* $(udhcpc)  - ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΡΠ΅Ρ‚ΡŒ (eth0 dhcp)

Для Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ³ΠΎ описания ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² смотритС Π²ΡΡ‚Ρ€ΠΎΠ΅Π½Π½ΡƒΡŽ подсказку

Π’ΠΈΠΏΡ‹ источников

/path/dir                 - дирСктория Π½Π° любом доступном носитСлС
/dev/[..]/path/dir        - дирСктория Π½Π° Π·Π°Π΄Π°Π½Π½ΠΎΠΌ носитСлС
LABEL@/path/dir           - дирСктория Π½Π° носитСлС с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ LABEL
UUID@/path/dir            - дирСктория Π½Π° носитСлС с uuid UUID
file-dvd.iso, file.img    - ΠΎΠ±Ρ€Π°Π· диска (ISO, ΠΎΠ±Ρ€Π°Π· Π±Π»ΠΎΡ‡Π½ΠΎΠ³ΠΎ устройства, VDI, VHDD ΠΈ Π΄Ρ€.)
http://server/path/...    - источник, доступный ΠΏΠΎ HTTP (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ httpfs) 
ssh://server/path/...     - источник, доступный ΠΏΠΎ SSH (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ sshfs)
ftp://server/path/...     - источник, доступный ΠΏΠΎ FTP (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ curlftpfs)
nfs://server/path/...     - источник, доступный ΠΏΠΎ NFS 
cifs://server/path/...    - источник, доступный ΠΏΠΎ CIFS 

ΠŸΠΎΡ€ΡΠ΄ΠΎΠΊ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ систСмы

УпрощСнная схСма, Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰Π°Ρ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ uird.cache, uird.mounts, uird.homes ΠΈ ΠΏΡ€ΠΎΡ‡. Π‘ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈΡ‰ΠΈΡ‚Π΅ Π²ΠΎ встроСнной справкС ΠΏΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌ.

  1. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ΡΡ поиск ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ ΠΏΡƒΡ‚ΠΈ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡƒ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ uird.basecfg= (Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ задаётся ΠΏΡ€ΠΈ сборкС uird)

  2. Π£ΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΈΠ· ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Ρ‰Ρ‘ Π½Π΅ установлСны Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ядра

  3. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ источников base-уровня Π² порядкС, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ uird.from=

  4. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ источников home-уровня, согласно ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρƒ uird.home=

  5. ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π² самый Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ AUFS источника пСрсистСнтных ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ, ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ uird.changes=, uird.mode=

  6. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ΡΡ синхронизация base уровня Π² ΠžΠ—Π£ с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° uird.copy2ram=

  7. ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅Ρ‚ΡΡ поиск ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π² ΠžΠ—Π£ ΠΈ base-ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΈΡ… Π½Π° [Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ-1] ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ AUFS ΠΈΠ»ΠΈ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ΠΊΠΎΡ€Π΅Π½ΡŒ (с ΡƒΡ‡Ρ‘Ρ‚ΠΎΠΌ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ², ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… uird.load=, uird.noload=,uird.ro=,uird.rw=,uird.cp=) со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ΠΎΠΌ:

                        uird.load --> uird.noload
                        uird.cp --> uird.rw --> uird.ro
    
  8. Π’Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ скрипты rc.preinit

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° систСмной Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ

  /memory/
  β”œβ”€β”€ bundles                   - Ρ‚ΠΎΡ‡ΠΊΠ° монтирования ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ
  β”‚Β Β  β”œβ”€β”€ 00-kernel.xzm
  β”‚Β Β  β”œβ”€β”€ 01-firmware.xzm
  β”‚Β Β  β”œβ”€β”€ 10-core.xzm
  β”‚Β Β  β”œβ”€β”€ 80-eepm-1.5.2.xzm
  β”‚Β Β  └── ...                   - ΠΈ Ρ‚.Π΄.
  β”œβ”€β”€ changes                   - Ρ‚ΠΎΡ‡ΠΊΠ° монтирования для хранСния ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
  β”‚Β Β  β”œβ”€β”€ etc
  β”‚Β Β  β”œβ”€β”€ home
  β”‚Β Β  β”œβ”€β”€ memory
  β”‚Β Β  β”œβ”€β”€ run
  β”‚Β Β  β”œβ”€β”€ var
  β”‚Β Β  └── ...                   - ΠΈ Ρ‚.Π΄.
  β”œβ”€β”€ data                      - Ρ‚ΠΎΡ‡ΠΊΠ° монтирования источников
  β”‚Β Β  β”œβ”€β”€ cache                     - кСш уровня
  β”‚Β Β  β”œβ”€β”€ homes                     - homes уровня
  β”‚Β Β  β”œβ”€β”€ mounts                    - mounts уровня
  β”‚Β Β  β”œβ”€β”€ machines                  - машинно-зависимых ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ
  β”‚Β Β  └── from                      - Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ уровня
  β”œβ”€β”€ copy2ram                  - Ρ‚ΠΎΡ‡ΠΊΠ° монтирования для синхронизации ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ/Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΉ Π² ΠžΠ—Π£
  β”œβ”€β”€ ovl                       - Ρ‚ΠΎΡ‡ΠΊΠ° монтирования Π²ΡΠΏΠΎΠΌΠΎΠ³Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ΠΎΠ² OverlayFS
  β”‚Β Β  β”œβ”€β”€ lowerdir                  - lowerdir
  β”‚Β Β  └── workdir                   - workdir
  β”œβ”€β”€ layer-base                - Ρ‚ΠΎΡ‡ΠΊΠ° монтирования Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ уровня
  β”‚Β Β  β”œβ”€β”€ 0                         - рСсурс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ источника
  β”‚Β Β  β”œβ”€β”€ 1                         - рСсурс Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ источника (Π² порядкС пСрСчислСния Π² uird.from=)
  β”‚Β Β  └── ...                       - ΠΈ Ρ‚.Π΄.
  β”œβ”€β”€ layer-cache               - Ρ‚ΠΎΡ‡ΠΊΠ° монтирования кСш уровня
  β”‚Β Β  β”œβ”€β”€ 0                         - рСсурс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ источника
  β”‚Β Β  β”œβ”€β”€ 1                         - рСсурс Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ источника (Π² порядкС пСрСчислСния Π² uird.cache=)
  β”‚Β Β  └── ...                       - ΠΈ Ρ‚.Π΄.
  β”œβ”€β”€ layer-homes               - Ρ‚ΠΎΡ‡ΠΊΠ° монтирования homes уровня
  β”‚Β Β  β”œβ”€β”€ 0                         - рСсурс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ источника
  β”‚Β Β  β”œβ”€β”€ 1                         - рСсурс Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ источника (Π² порядкС пСрСчислСния Π² uird.homes=)
  β”‚Β Β  └── ...                       - ΠΈ Ρ‚.Π΄.
  β”œβ”€β”€ layer-mounts              - Ρ‚ΠΎΡ‡ΠΊΠ° монтирования mounts уровня
  β”‚Β Β  β”œβ”€β”€ 0                         - рСсурс ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ источника
  β”‚Β Β  β”œβ”€β”€ 1                         - рСсурс Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ источника (Π² порядкС пСрСчислСния Π² uird.mounts=)
  β”‚Β Β  └── ...                       - ΠΈ Ρ‚.Π΄.
  β”œβ”€β”€ cmdline                   - систСмный Ρ„Π°ΠΉΠ» для хранСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки
  └── MagOS.ini.gz              - систСмный Ρ„Π°ΠΉΠ» для хранСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π°

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ Ρ„Π°ΠΉΠ»Π° MagOS (ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΡ€ΠΈ сборкС UIRD для MagOS-linux)

  uird.config=MagOS.ini
  uird.ramsize=70%
  uird.ro=*.xzm;*.rom;*.rom.enc;*.pfs
  uird.rw=*.rwm;*.rwm.enc
  uird.cp=*.xzm.cp,*/rootcopy
  uird.load=/base/,/modules/,rootcopy
  uird.noload=/MagOS-Data/changes,/MagOS-Data/homes
  uird.from=/MagOS;/MagOS-Data
  uird.find_params=-maxdepth_3
  uird.mode=clean
  uird.changes=/MagOS-Data/changes
  uird.syscp=/livekitlib::/usr/lib/magos/scripts;/uird.scan::/usr/lib/magos/scripts;/liblinuxlive::/mnt/live/liblinuxlive

Π Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Π΅ Π² MagOS Linux с этим ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΎΠΌ:

*.ROM - RO слой
*.RWM - RW слой
*.XZM - RO слой с squashfs
*.XZM.CP - распаковываСтся Π² ΠΊΠΎΡ€Π΅Π½ΡŒ систСмы
*.RWM.ENC - RW слой ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π½Ρ‹ΠΉ
*.ROM.ENC - RO слой ΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Π½Ρ‹ΠΉ

Π”Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»ΠΎΠ² смотритС Ρ‚ΡƒΡ‚

РСализация

Π’ основС Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π»Π΅ΠΆΠΈΡ‚ Π½Π°Π±ΠΎΡ€ скриптов ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ dracut (ΠΌΠΎΠ΄ΡƒΠ»ΠΈ base, kernel-modules ) ΠΈ скрипты uird (livekitlib+uird-init).

cmdline-hook: parse-root-uird.sh (Π·Π°Π³Π»ΡƒΡˆΠΊΠ°)
mount-hook: mount-uird.sh (выполняСт скрипт uird-init)
  • livekitlib - содСрТит Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ систСмы ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ.
  • uird-init - ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ выполняСт Π½Π°Π±ΠΎΡ€ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΈΠ· livekitlib ΠΈ осущСствляСт каскадно-Π±Π»ΠΎΡ‡Π½ΠΎΠ΅ ΠΌΠΎΠ½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ систСмы Π² Π΅Π΄ΠΈΠ½Ρ‹ΠΉ ΠΊΠΎΡ€Π΅Π½ΡŒ AUFS Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ, ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π² ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ dracut $NEWROOT.

Установка ΠΈ сборка

Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ описаниС процСсса: uird_build.md

About

UIRD - Unified Init Ram Disk system

Resources

Stars

Watchers

Forks

Packages

No packages published

Contributors 7

Languages