Portál AbcLinuxu, 5. června 2024 14:45


Dotaz: loop připojit při bootu

18.1.2021 12:48 palardd | skóre: 7
loop připojit při bootu
Přečteno: 300×
Odpovědět | Admin
Ahoj poradno,

vytvořil jsem si disk ze souboru /opt/neco.img (dd, fdisk) z command line jsem si udělal loop zařízení pomocí kpartx -av načetl zařízení (partition) se mi zobrazuje jako /dev/mapper/loop01 nad tím mám celé LVM a uvnitř LVM je tento disk jako physical volume ve /etc/fstab to přimontuju (mount -a) VŠE OK

všechno funguje v pořádku z řádky, ale nedaří se mi při bootu systému vytvořit znova ten loop, tím pádek se pak nespustí LVM a mount ve fstab, jde to timeoutu

Jak na to? Debian 10 systemd TP
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

18.1.2021 13:05 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: loop připojit při bootu
Odpovědět | | Sbalit | Link | Blokovat | Admin

Podívej se na systemd unit v tomhle komentáři. (Kontext toho bugu je naprosto irelevantní; jde jen o ten kousek konfigurace.) Rozhodně to není přesně to, co hledáš, ale přibližně něco takového to je.

Do /etc/fstab se zadá příslušný příslušný mountpoint, nejlépe s x-systemd.automount, a speciální systemd unit pak dává jakýsi „návod“, jak vyrobit potřebné zařízení, aby se dal daný mountpoint připojit.

Tvůj případ může být o kus komplikovanější než odkazovaný příklad, protože by se mělo navíc ještě korektně počkat na otevření LVM uvnitř loopback zařízení atd. To může vyžadovat v lepším případě několik ExecStart a ExecStop, v horším případě několik sytemd units, které na sobě budou záviset a postupně ta zařízení zprovozní (a nakonec zas vypnou).

k3dAR avatar 18.1.2021 13:16 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: loop připojit při bootu
tak jestli nebude mit jednodusi to pripojit pres /etc/rc.local totozne jako to dela rucne ;-)
porad nemam telo, ale uz mam hlavu... nobody
18.1.2021 14:51 palardd | skóre: 7
Rozbalit Rozbalit vše Re: loop připojit při bootu
Debian 10 má systemd pouze... rc.local není řešení
18.1.2021 14:56 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: loop připojit při bootu
Dá se to jednoduše nasimulovat. Ale skutečně to není řešení, protože on potřebuje vrazit to připojení loop zařízení před to LVM, což znamená napsat vlastní unitu.
Jendа avatar 18.1.2021 20:21 Jendа | skóre: 78 | blog: Jenda | JO70FB
Rozbalit Rozbalit vše Re: loop připojit při bootu
rc.local není řešení
Proč ne? (jako je to „nepěkné“ a správně by sis asi měl vyrobit nějakou mount unitu, ale fungovat to bude)

Nebo myslíš, že systemd znamená, že nefunguje rc.local?
# systemctl cat rc.local.service 
[...]
ConditionFileIsExecutable=/etc/rc.local
[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
RemainAfterExit=yes
Stačí vytvořit ten soubor a nastavit executable.
k3dAR avatar 18.1.2021 21:36 k3dAR | skóre: 62
Rozbalit Rozbalit vše Re: loop připojit při bootu
sudo systemctl enable rc.local
a pripravit /etc/rc.local:
#!/bin/sh -e

# nad 'exit 0' vlozit co se ma pustit...

exit 0
porad nemam telo, ale uz mam hlavu... nobody
18.1.2021 16:13 palardd | skóre: 7
Rozbalit Rozbalit vše Re: loop připojit při bootu
tak je moc high :( koukám do manuálu a je to sám odkaz na další... žádný příklad, od kterého bych se mohl odrazit.

Udělal jsem si vlastní službu >>>>>>>loop.service

[Unit] Description=Run on boot once

[Service] Type=oneshot ExecStart=/sbin/kpartx -avs /disk.img TimeoutSec=0 RemainAfterExit=yes

[Install] WantedBy=multi-user.target
19.1.2021 07:59 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: loop připojit při bootu

Element <pre> by nebyl? Tohle se nedá číst.

18.1.2021 13:47 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: loop připojit při bootu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ty jsi zvíře.

Kdybys to mountil přímo, tak pro fstab existuje option loop. Ovšem tím že máš nad tím LVM si to pěkně komplikuješ. Takže si musíš někam vrazit kód co ti ten loop udělá dřív, než se ten systém začne snažit nahodit to LVM.
18.1.2021 14:55 palardd | skóre: 7
Rozbalit Rozbalit vše Re: loop připojit při bootu
vytvoření loop je POD LVM, takže s LVM to nemá nic společného. LVM a šifrování je NAD tím, systém se zastaví na tom, že nevytvoří loop, když ho udělám v INIT 1 ručně, pokračuje dále směle a perfektně

díky za reakce
18.1.2021 15:02 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: loop připojit při bootu
Jak nemá nic společného!?!? Jasně píšeš, že máš image připojený přes loop a NAD tím LVM, teprve pak nějaký šifrovaný oddíl, co chceš mountovat. Takže to sakra má co společného! Je to stejné, jako bys neměl disk na kšandě a chtěl ho připojit.

To znamená že se MUSÍ NEJPRVE připojit ten image. takže je POD LVM. Jestli ten image máš nad dalším LVM, je irelevantní. Rozhodující je aktivace VGgroup. Si v tom udělej jasno.
18.1.2021 15:28 palardd | skóre: 7
Rozbalit Rozbalit vše Re: loop připojit při bootu
Myslel jsem to tak, že neřešíme LVM nebo cokoliv ve vyšších vrstvách, ale to, aby mi boot prostě načetl z toho image tabulku rozdělení a jednoduše jen vyrobil /dev/mapper/neco...

Co se děje nad tím je zcela irelevantní (a fuguje to, pokud ručně ten loop vyrobím na consolu).

Takže znova: potřebuji boot naučit vyrobit ten loop pomocí kpartx Thats it
18.1.2021 16:07 Aleš Kapica | skóre: 51 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: loop připojit při bootu
No a jak má asi ten systém to zařízení vyrobit, když mu chybí zařízení, nad kterým má ty LV oddíly vyrobit?!

Pochop laskavě, že kpartx žádný loop nevyrábí. On ho jenom umí použít. Dyk to sám píšeš: …a fuguje to, pokud ručně ten loop vyrobím. Takže asi těžko ho naučíš něco co nedělá a nikdy dělat nebude. Protože to je pouze nástroj, který pracuje s particemi.

No. Nic. Mohu-li ti radit, nepouštěj se do věcí kterým nerozumíš a odmítáš porozumět, protože sám si s takovou tu unitu nenapíšeš.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.