W rzeczywistości jest to zarówno problem oprogramowania, jak i sprzętu.
Jak wcześniej stwierdzono w innych odpowiedziach, obecne architektury używają wielu mechanizmów buforowania, aby przyspieszyć procesy. W przypadku utraty zasilania tracisz zawartość, która nie została zapisana w nieulotnej pamięci, nawet jeśli myślałeś, że zapisałeś ją w pliku. To utrata danych. Może to również prowadzić do uszkodzenia danych, ponieważ niektóre systemy plików nie zapisują na dysku w takiej samej kolejności, jak w powyższych programach , aby poprawić szybkość operacji we / wy. Słyszałem o tym, że niektóre osoby wyłączają zapisywanie poza kolejnością w ext4, aby niektóre mechanizmy zapobiegania uszkodzeniom plików nadal działały, podczas gdy programiści ext4 mówią, że taki program powinien używać fsync, aby zapewnić zachowanie systemu plików .
Istnieją również problemy ze sprzętem. Brutalne obniżenie mocy może prowadzić do przepięcia lub przetężenia, głównie z powodu zachowania indukcyjnego niektórych elementów elektrycznych, głównie silników. Niemniej jednak dobrze zaprojektowane oprogramowanie sprzętowe powinno być w stanie zapobiec kolejnym uszkodzeniom. Jest to nieco droższe, ale jeśli kupujesz komputery z roczną gwarancją (nawet opcjonalną), lub przynajmniej obsługuje zwroty od klientów, producent jest tańszy, aby dodać diodę flyback niż obsługiwać zwroty od klientów. Dlatego nie martwię się tutaj, z wyjątkiem bardzo tanich zasilaczy.
Warto zauważyć, że dzisiejsze powody, aby uniknąć brutalnego zamknięcia, różnią się od tych sprzed 30 lat. 30 lat temu systemy plików były bardzo wrażliwe na awarie zasilania i można było uszkodzić sam system plików. Dzisiaj teoretycznie możesz uszkodzić pliki, ale nie cały system plików. Praktycznie, jeśli chcesz wysokiej klasy, najnowocześniejszej wydajności, przejdziesz na dysk SSD. Dyski półprzewodnikowe używają zarządzanej pamięci flash, zwykle pamięci wielopoziomowej NAND flash (oznacza to komórki dwupoziomowe), czasami komórki trzypoziomowe. Dzięki tym technologiom w przypadku utraty zasilania podczas zapisu możesz uszkodzić zapisywaną stronę, ale także jedną lub dwie inne strony w tym samym bloku. Na poziomie systemu plików modyfikacja jednego pliku może uszkodzić inny plik, a nawet dane systemu plików. Ze względu na wyrównanie zużycia, wywóz śmieci, oraz inne mechanizmy poprawiania i przenoszenia, zapisy mogą się zdarzyć nawet wtedy, gdy system plików nie wymaga żadnej aktywności z dysku SSD (jest to nazywane operacją w tle), a zatem uszkodzenia są nieprzewidywalne z punktu widzenia systemu plików. Aby uniknąć takich uszkodzeń, niektórzy producenci dysków SSD dodają kondensatory do dysków SSD, aby umożliwić zakończenie dowolnej operacji flashowania po wykryciu braku zasilania (wymaga to około 10 ms zasilania). Karty SD i dyski flash USB mają te same ograniczenia, ale nie mogą mieć takich kondensatorów. niektórzy producenci dysków SSD dodają kondensatory do dysków SSD, aby umożliwić zakończenie trwającej operacji flashowania po wykryciu utraty zasilania (wymaga to około 10 ms zasilania). Karty SD i dyski flash USB mają te same ograniczenia, ale nie mogą mieć takich kondensatorów. niektórzy producenci dysków SSD dodają kondensatory do dysków SSD, aby umożliwić zakończenie trwającej operacji flashowania po wykryciu utraty zasilania (wymaga to około 10 ms zasilania). Karty SD i dyski flash USB mają te same ograniczenia, ale nie mogą mieć takich kondensatorów.
Krótko mówiąc, dobrze zaprojektowany sprzęt jest ogólnie odporny na utratę zasilania, ale jest droższy. Oprogramowanie jest w większości przypadków odporne na utratę zasilania, ale czasem założenia mogą zostać przełamane przez ewolucję innego oprogramowania. Każda próba stworzenia tańszego projektu lub zminiaturyzowania projektu może zmniejszyć możliwość uczynienia projektu odpornym na utratę zasilania. Trudno również wiedzieć, czy Twój komputer zawsze będzie odporny na brutalną utratę zasilania.