Setelah shutdown yang tidak bersih pada perangkat berbasis kartu SD, saya membawa kartu SD ke fsck
sistem file root. Ini menyebabkan variasi pada hal-hal berikut:
e2fsck 1.43.1 (08-Jun-2016)
/dev/sdc2: recovering journal
Superblock needs_recovery flag is clear, but journal has data.
Run journal anyway<y>? no
Clear journal<y>? no
e2fsck: unable to set superblock flags on /dev/sdc2
Di sini saya sudah menjawab "tidak" kedua kali tetapi tidak ada urutan ya / tidak yang tidak langsung mengarah ke hasil yang sama.
Sistem file dapat dipasang dan pada inspeksi biasa tampak oke; itu juga berfungsi dengan baik di perangkat, dan itulah sistem file root (sebenarnya ternyata tidak terlalu baik, lihat komentar; tldr beberapa direktori yang rusak diperbaiki).
Saya dd
partisi (8 GB) ke file, dan mencoba fsck itu. Menariknya:
e2fsck 1.43.1 (08-Jun-2016)
plush.rootfs: recovering journal
Clearing orphaned inode 18290 (uid=0, gid=0, mode=0100644, size=34096)
Clearing orphaned inode 18270 (uid=0, gid=0, mode=0100644, size=38916)
Clearing orphaned inode 18250 (uid=0, gid=0, mode=0100644, size=1128076)
Clearing orphaned inode 11411 (uid=0, gid=0, mode=0100644, size=293108)
Setting free inodes count to 406127 (was 408580)
Setting free blocks count to 1305622 (was 1347486)
plush.rootfs: clean, 60209/466336 files, 604906/1910528 blocks (check after next mount)
Setelah fsck
lulus bersih, gambar bisa dipasang, dan fsck -f
setelah itu berlalu juga.
Tetapi filesystem pada kartu dari mana gambar copy blok mentah dibuat masih memiliki masalah yang sama - kecuali bahwa systemd-fsck
yang terjadi saat boot log filesystem sebagai "bersih". Namun selanjutnya, shutdown yang tepat, mengeluarkan kartu, dan mencoba fsck
lagi dari kotak lain menyajikan kesalahan yang sama.
Setiap kali dokumen asli dipasang pada komputer lain, syslog mencatat:
kernel: EXT4-fs (sdc2): 4 orphan inodes deleted
kernel: EXT4-fs (sdc2): recovery complete
Karena saya memiliki semuanya didukung, saya terbuka untuk mencoba apa pun di sini. Saya dapat dengan mudah melupakan hal ini dan mengembalikan partisi dari gambar yang tampaknya sudah diperbaiki, tetapi itu tidak tampak seperti solusi yang sangat memuaskan, karena itu berarti mengasumsikan fsck gagal dalam memecahkan masalah yang tampak kecil.
Saya menduga ini akan berubah menjadi pertanyaan "permintaan untuk dokumentasi resmi" mengenai hal-hal seperti kebutuhan recovery_flag (atau sekadar pertanyaan "Apa artinya ini?"), Jadi saran apa pun yang disarankan sangat dihargai.
apt upgrade
). Setelah itu log boot normal - dan systemd-fsck mengatakan "clean" (saya akan mengeditnya), tetapi mencoba fsck di luar konteks itu masih gagal.Jawaban:
Saya hanya mengalami masalah yang sama. Setelah men-debug masalah dengan
e2fsck
pengelola, kami menyadari bahwa kartu SD rusak. Itu menerima penulisan tanpa kesalahan, tetapi itu sebenarnya tidak menulis data ke kartu. Kartu SD hanya efektif dibaca.Sepertinya kartu telah masuk ke semacam mode gagal aman, di mana data masih bisa dibaca, tetapi tidak ada yang ditulis.
The
e2fsck
pesanunable to set superblock flags
berarti itu mencoba untuk menulis ke superblok untuk menandai jurnal sebagai diproses, yang terjadi tanpa kesalahan, tetapi ketika ia pergi untuk membaca superblock kembali lagi masih menunjukkan bahwa jurnal perlu diputar. Dengan kata lain, perubahan yang ditulis ke superblok tidak disimpan pada media penyimpanan.Kartu yang saya gunakan yang memiliki masalah ini adalah microSD Samsung Evo 16GB, yang saya sebutkan kalau-kalau itu adalah masalah umum dengan kartu-kartu ini.
Saya dapat menguji ini dengan menggunakan
dd
untuk menulis 4096 byte dari/dev/zero
ke kartu di blok 0, kemudian saya membaca kembali dari kartu dan bukannya mendapatkan semua nol seperti yang seharusnya, saya masih mendapatkan superblock ext4 asli tidak berubah.Saya sekarang sedang dalam proses memindahkan data ke kartu baru dan kemudian melihat apakah saya bisa mendapatkan pengganti dari Samsung, yang tampaknya menawarkan garansi 10 tahun pada kartu SD.
UPDATE: Samsung mengganti kartu 16GB dengan kartu 32GB dalam seri Evo yang sama, jadi saya kira saya tidak bisa mengeluh terlalu banyak!
sumber
Saya tahu ini adalah utas lama, tapi, saya pikir saya akan menawarkan beberapa wawasan.
Ini tampaknya menjadi cara kartu sd mati secara alami. Jumlah siklus baca / tulis yang dapat diterima kartu sd jauh lebih rendah daripada sebagian besar media lain yang dianggap 'baca / tulis'. Ketika itu telah habis, kartu akan masuk ke mode hanya baca, tetapi tidak akan memberi tahu Anda tentang itu. Banyak hal akan berpikir mereka menulis ke kartu berkat caching OS, dll, tetapi tidak ada yang pernah menempel.
Cara yang bagus untuk membunuh kartu sd adalah memasangnya sebagai partisi swap atau sesuatu yang sangat baca / tulis intensif. Anda akan terkejut betapa cepatnya Anda dapat membunuh kartu dengan cara itu. Saya telah menemukan bahwa menjalankan knoppix off dari kartu sd atau usb thumb drive hanya akan bertahan satu atau dua bulan, tergantung pada kualitas kartu dan intensitas penggunaan knoppix. (Sejak itu saya beralih ke menjalankan knoppix off dari drive SSD usb yang telah berlangsung beberapa tahun sekarang).
sumber