27 Şubat 2022 Pazar

ext4 dosya sistemini nasil kurtarabilirim

ext4 dosya sistemi aktif olarak  kullanılırken, sistem aniden çuvalladığında(elektrik kesilmesi,  kernel modülü  aksaklığı vs. gibi nedenlerden) başımız ağrıyacağı kesindir. Özellikle binlerce dosyalar aktif olarak kullanılıloyrsa,  database sistemi aktif kullanılırken gittiyse başımız biraz dertte, 'Bad magic number in super-block' mesajını alıyoruz olabilir.

Böyle durumda hemen yapılmaması yapılmaması gereken tek şey, dosya sistemini fsck ile tamir etmeye kalkmaktır.


Mümkünse her hangi bir işlem yapmadan sorun yaşanan disk/lun'un  snapshot alarak, snopshot tan clone türetmek çok doğru bir hareket olur.

Bir şekilde snapshot/clone aldıysak  sistemdeki yedek superblockları belirleyerek, yedek superblocklardan sistemi check etmeye başlarız. 

Şayet dosya sistemini formatlarken  aşağıdaki, mkfs de bize superblockların yerini söylediği mesajı sakladıysak, aşağıdaki ile mevcut durumuda tekrar kontrol etmek faydalı olur.

Filesystem UUID: 08257eda-3f3f-4380-96e1-13e092f9cfa0
Superblock backups stored on blocks:
    32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
    4096000


Dosyasisteminin bulunduğu disk bölümü sdc1 ise;

dumpe2fs /dev/sdc1 | grep 'Backup superblock'

[root@adminlinux ~]#  dumpe2fs /dev/sdc1 |grep 'Backup superblock'
dumpe2fs 1.45.6 (20-Mar-2020)
  Backup superblock at 32768, Group descriptors at 32769-32771
  Backup superblock at 98304, Group descriptors at 98305-98307
  Backup superblock at 163840, Group descriptors at 163841-163843
  Backup superblock at 229376, Group descriptors at 229377-229379
  Backup superblock at 294912, Group descriptors at 294913-294915
  Backup superblock at 819200, Group descriptors at 819201-819203
  Backup superblock at 884736, Group descriptors at 884737-884739
  Backup superblock at 1605632, Group descriptors at 1605633-1605635
  Backup superblock at 2654208, Group descriptors at 2654209-2654211
  Backup superblock at 4096000, Group descriptors at 4096001-4096003
[root@adminlinux ~]#


Bu aşamadan sonra e2fsck   ve yedek superblockla dosya sistemini kontrol ettiririz.


# e2fsck -n /dev/sdc1 -b 32768

# echo $?


Sayet kontrolumuz hatasiz tamamlaniyorsa, 

# e2fsck  /dev/sdc1 -b 32768

komutuyla dosya sistemini tamir ettiririz.,

 

 Yukarıdaki gibi kurtarma işlemleri yapılsada, dosya sistemi ve  uygulama yedeği alınmasını ihmal etmemeliyiz.


Database uygulamalarının yedeğini, database çalışırken dosyalarını kopyalayarak yapamayız. Database çalışırken aldığımız yedekler yedek değildir. Büyük ihtimal ihtiyaç olduğunda geridönülmesi çok zor veya imkansız dosyalar  olarak arşivde dururlar.



Hiç yorum yok:

Yorum Gönder

Git kullanımı notları

 Temel ayarlar git kullanıcısı için: $ git config --global user.name "Remzi AKYÜZ" $ git config --global user.email "remzi@ak...