Portál AbcLinuxu, 10. května 2025 07:21
mount -o ro,remount [device]
root@raspberrypi:~# mount -no ro,remount / mount: / is busy…překvapivě. Jak ho zastavit OKAMŽITĚ netuším (patchni si driver pro SD kartu), pro clean umount by mohlo pomoct injectnout "s" a "u" do sysrq.
poweroff
a systém se zastaví. Pokud mu nemůžu poslat poweroff
tak mu nepošlu ani jiný příkaz na zastavení zápisu. Jinak Linux má obecně dost informací v cache a to jak obsahu souborů tak metainformací o inode a strukturách na disku. Okamžité zastavení zápisu by stejně strukturu poškodilo, disky se musí syncnout aby informace na nich byly konzistentní. Původně jsem z otázky měl pocit, že řešíte problém: "Karta se mi hroutí, chci zachránit, co jde, tak nechci už do ni zapsat ani byte.", ale teď už ten dojem nemám. K ochraně hroutící karty by částečně pomohlo mít (od počátku) oddělený oddíl připojený jako RO kde je systém (jak je v předchozím příspěvku)
Tak bych zavolal normální sync, prip. přemontoval kartu do read-only s parametrem -l.To trvá moc dlouho, navíc při běžícím zápisu to neprojde. Jediné, co mě napadá, je ulomit to nějak destruktivně v kernelu. Odstranit příslušný modul nebo spáchat kamikadze pomocí reboot -f/halt -f. To nevím, jestli na RPi funguje. Prostě Linux tohle zřejmě neumí, ale máš zdrojáky, takže si můžeš udělat do kódu pro SDIO interface, kterej to blokne.
Nepotrebuješ bránit čtení, to nic kartě neudělá.Pár lidí mi tvrdilo, že u MLC flashky může čtení ovlivňovat okolní buňky. Nejspíš to ale nesouvisí s výpadkem napájení.
echo u >/proc/sysrq-triggerAkorát to hodně programů dost pravděpodobně nerozdýchá
on je ext4 poměrně odolnýSamozřejmě, ostatně žurnálovacím FS by odpojení v kterémkoli okamžiku prostě nemělo vadit. Celou dobu se ale nebavíme o konzistenci FS (to by tazatel nechtěl nekorektně odpojit), nýbrž o konzistenci mikrořadiče v kartě.
"echo b >/proc/sysrq-trigger"
halt -f
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.