Bunun için proje köküne “.gitignore” adında bir dosya oluşturup örnekteki içeriği ekleyebilirsiniz. Aşağıdaki örnek içerikte bulunan uzantılar ve dosyaların haricinde depoya gitmesini istemediğiniz dosyalar ve ya dosya türleri varsa bu listeye ekleyebilirsiniz. Aynı zamanda bu dosyayı git deposuna eklemenizi proje ortaklarınız içinde faydalı olacaktır. Böylelikle bütük kullanıcılarda aynı dosyalar bir kerede engellenmiş olur.
Kategori: Linux
-
Gereksiz dosyaların git deposuna eklenmesini engellemek
-
Uzak sunucudaki git deposunu yerele çekmek
Uzak sunucudaki git deposunu yerele çekmek diğer anlamıyla, remote repo’yu clone’lamak için aşağıdaki adımları takip edeceğiz.
Yerel makinede projenin klonlanacağı klasöre geçiyoruz. Örnekte “~/dev/” klasörünü kullancağımveli@veli-GA-990XA-UD3:~/dev/git clone [email protected]:project.git
Cloning into ‘project’…
Enter passphrase for key ‘/home/veli/.ssh/id_rsa’:
warning: You appear to have cloned an empty repository.
Checking connectivity… done.Yukarıda daha önceki yazımda “gitolite” aracılığı ile ilklendirmiş olduğumuz boş depoyu yerelimize klonlamış olduk. Bundan sonra yapılacak olan iş proje klsörü içine proje dosyalarını koymak ve bunları depoya göndermek. Dosyaları ekledikten sonra depoya göndermek için şunları yapıyoruz: (daha&helliip;)
-
Gitolite ile Git’e kullanıcı eklemek
Eklenecek kullanıcının public_key’i alınır. Bunun için kullanıcın bilgisayarında, geliştirme için kullanılan kullanıcı hesabı ile login olunur ve aşağıdaki komut çalıştırılır.
ali@ali-GA-990XA-UD3:~/ ssh-keygen -t rsa -C “ali@ali-GA-990XA-UD3“
bu komut ile kullanıcın home klasöründe bulunan .ssh klasörü altında “[email protected]” isimli bir public key oluşur. Bu public key dosyası gitolite yönetici olan kullanıcıya iletilir. gitolite yöneticisi olan kullanıcı, bu public key dosyasını “gitolite-admin/keys” klasörüne yerleştirir ve gitolite deposuna ekler
veli@veli-GA-990XA-UD3:~/gitolite-admin/git add keydir/[email protected]
Sonrasında eklenecek kullanıcı için git kullanıcısı oluşturulur: (daha&helliip;)
-
Kendi Git deponuzu kurun ve Gitolite ile yönetin
Bu doküman ile Ubuntu sistemlerde git sürüm yönetim sistemini kolaylıkla kurup rahat bir şekilde yönetebilirisiniz. Öncelikle ubuntu sistemlerinde git sürüm yönetim sistemi nasıl kurulur onu inceleyelim
- Git sürüm yönetim sistemi kurulumu:
veli@veli-GA-990XA-UD3:~/ sudo apt-get install git-core
Hepsi bu 🙂
- Gitolite ile Git yönetimi:
Git sürüm yönetim sisteminin komut dilini ezberlemek ve her seferinde hatırlamaya çalışmak biraz sıkıntılı, özellikle de yeni depo kurmanız ve kullanıcı ve dahi haklarını yönetmeniz gerekiyorsa…
Gitolite bu işleri basitleştirmek amacıyla, daha önceden var olan az daha sorunlu, sıkıntılı ve artık geliştirilmesi bırakılmış olan Gitosis yerine oluşturulmuş bir projedir. Amaç depo ve kullanıcı yönetimini basitleştirmek, sistem yöneticilerinin kendilerine daha fazla zaman ayırabilmelerini sağlamaktır :p
Ubuntu sisteminde gitolite kurmak ve sürüm yönetim sistemini bunun üzerine taşımak için git sürüm yönetim sistemini kurduktan sonra aynı yöntem ile gitolite’ı sisteme kuracağız. Ancak bunu yaparken uzak sunucu kullanmak isteyeceğinizi varsayarak sistemi yapılandıracağız. Bunun için uzak sunucuya ssh ile giriş yaptıktan sonra süper kullanıcı konumuna geçmeniz gerekli. (daha&helliip;)
-
RAID 1 sistemin tek diskini başka makineye bağlayıp yedek almak
Farz-ı misal yedekleme için kullandığınız veri yolları yavaş çalışan bir Software RAID 1 üzerinde koşan makinanız var. Zaman içinde bu makinanın diskinin dolması ile yedeklerin arşiv disklerine kayıt edilme zamanı geldi diyelim. Arşiv olarak kullanmak üzere aldığınız diske verileri aktarmanız gerekiyor ama başta dediğim gibi yedekleme makinasının veri yolları o kadar yavaş ki içindeki yedekleri arşiv diskine aktarması günler alacak.
Normalde yavaş veri yolu olan bir makineden veriyi içindeki diski daha hızlı bir makineye takarak almayı tercih edenlerdenim, ancak şimdiye kadar SoftRAID 1 üzerinde koşan bir makinadan bu şekilde veri çekmemiştim.
Veri yüklü diski söktüm arşiv diski ile birlikte hızlı bir makineye bağladım ve sistemi boot ettim. Normalde yapacağım iş iki diski de mount edip veri aktarımını başlatmak ancak SoftRAID1 diski mount etmek için fdisk ile neyi mount etmem gerektiğine bakarken şöyle birşey ile karşılaştım:
# fdisk -l
Disk /dev/sdc: 2000.4 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00015350Device Boot Start End Blocks Id System
/dev/sdc1 2048 3905535 1951744 fd Linux raid autodetect
/dev/sdc2 * 3905536 3907028991 1951561728 fd Linux raid autodetectTabi mount etmeye kalkınca şu hatayı aldım:
# mount /dev/sdc1 /mnt
mount: unknown filesystem type ‘linux_raid_member’
Ufak bir araştırma ile önce diski taktığım sistemde bir array oluşturmam grektiğini gördüm ancak array oluşturma denemem tek disk doğal olarak aynısı olması gereken tek partition bulunduğu için başarısız olmuştu. Velhasıl biraz daha bakınınca array için kullandığım --assemble komutuna --run anahtarını da eklemem gerektiğini gördüm;
# mdadm --assemble --run /dev/md0 /dev/sdc1
Komutu ile tek partition ile arrayi oluştumayı başardım ve /dev/md0 cihazını /mnt altına bağlayarak verileri almaya başlayabildim.
-
Amazon S3 buketini Linux’a mount etmek
Eğer Amazon S3 servisindeki buketinizin içindeki dosyaların bilgisayarınızdaki kopyalarında değişiklik yaptıktan sonra illaki Firefox s3 organizer gibi bir eklenti ya da s3cmd gibi bir linux konsol komutu üzerinden buketteki dosyayı güncellemekten sıkıldıysanız, fuse tabanlı s3fs ile buketlerinizi yerel makinenize mount ederek dosya sisteminin bir parçası gibi kullanabilirsiniz.
Malesef şimdilik Ubunut paket deposunda bulunmamakta ancak kaynaktan kurulum düşündüğünüz kadar zor değil. Sadece kaynağı derlerken gerekli olan bağımlılıkların sisteminizde kurulu olması gerekmekte. Kuruluma hazırlık için öncelikle bu bağımlılıkları kurmanız gerekmekte:
# sudo apt-get update
# sudo apt-get install build-essential gcc libfuse-dev fuse-utils libcurl4-openssl-dev libxml2-dev mime-support build-essential libcurl4-openssl-dev
Bağımlılıkları kurduktan sonra s3fs kaynak dosyasını indirebilirsiniz. Ben s3fs’i derleyip kurduğumda son sürüm olarak 1.71 bulunmaktaydı. Eğer daha güncel bir sürüm varsa bunu kullanmayı deneybilirsiniz. Ancak bağımlılıklardan dolayı sorun yaşama ihtimaliniz durumunda çözümünü araştırmanız gerekecek. Şimdi güncel kaynak dosyasını indirelim:
# wget http://s3fs.googlecode.com/files/s3fs-1.71.tar.gz
İndirdiğimiz kaynak dosyasını açalım;
# tar -xvzf s3fs-1.71.tar.gz
Derleme ver kurulum işlemlerini yapalım:
# cd s3fs-1.71
# ./configure
# make
# sudo make install
s3fs kurulumu bu kadar. Şimdi dosyanın nereye kurulduğuna şu komut ile bakabiliriz:
# which s3fs
/usr/local/bin/s3fsBundan sonra s3fs için bir password dosyası oluşturup buketlerimizin Access ve Secret keylerini içine yazmak olacak. Oluşturacağımız dosyanın lokasyonu ve adı aşağıdaki gibi olmak zorundadır:
# nano /etc/passwd-s3fs
access_key:secret_key
ctrl+x
# chmod 640 /etc/passwd-s3fs
Böylece bağlayacağımız buketi mount ederken s3fs’in okuması gereken access ve secret keylerin bulunduğu dosyayı da oluştumuş olduk.
Bundan sonra işimiz sadece bir klasör oluşturup buketi o klasöre bağlamaya kalıyor.
# sudo mkdir /mnt/herhangi_bir_klasör_ismi
# sudo s3fs benim.buketimim.adı /mnt/herhangi_bir_klasör_ismi
tabi bu işlem sonucunda doğal olarak o klasöre sadece root ya da sudo kullanıcısı ulaşabilecek demektir. izinleri ayarlamak için gerekli işlemleri araştırmadığım için buraya yazmıyorum, bu da sizin ödeviniz olsun.
-
Yarım kalan recovery ve kullanıma girmeyen RAID array bölümü.
Başıma gelen bir diğer sorun ise recovery’nin bir şekilde yarım kalması ve bu yüzden RAID arraye ait bölümün birisinin kullanıma girmemesiydi ([_U] durumu).
Tekrar recvery denediğimde bana “Device or Resource Busy” hatası döndürdü durdu.
# mdadm –manage /dev/md0 –add /dev/sda1
mdadm: cannot open device /dev/sda1: Device or resource busyMD array’indeki bölümü durdurmama bile müsaade etmedi.
# mdadm –stop /dev/md2 /dev/sda3
mdadm: fail to stop device /dev/sda1: Device or resource busyİnanılmaz birşey ancak bir türlü durmuyordu. Onu durdurabilmek için baya bir uğraştıktan ve araştırdıktan sonra öncelikle failed olarak işaretlemem ve ardından remove etmem gerektiğini öğrendim.
# mdadm –fail /dev/md2 /dev/sda3
mdadm: set /dev/sda3 faulty in /dev/md2# mdadm –remove /dev/md2 /dev/sda3
mdadm: hot removed /dev/sda3Sonunda onu durdurmayı başardım ve doğrudan recovery işlemini başattım. recovery işlemini başlattığımda otomatik olara sda3 bölümün md2 arrayine ekleyip resync işlemine başladı. Bu yazıyı yazarken recovery henüz bitmemişti, bitmesine de daha en az 3 saat vardı. O yüzden bölümün kullanıma girip girmediğini yazmıyorum.
-
inactive RAID array sorunu.
RAID recovery sırasında ilk karşılaştığım sorun inactive raid array oldu. Bir arrayin inactive olup olmadığını anlamak için “# cat /proc/mdstat” komutu çıktısına bakmanız yeterli. Eğer çıktıda listelenen md’lerin karşılığında hepsinde “active” yazıyorsa sıkıntı yok demektir. Aşağıda örnek bir çıktı görebilirsiniz.
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath]
md0 : inactive sdb1[1](S)
2102464 blocksmd1 : active raid1 sda2[0] sdb2[1]
…Bu durumda md0 için restorasyon işlemini muhtemelen başlatamayacaksınız. Sorunu çözmek için arrayleri tekrar taramasını sağlamak gerk bunun için aşağıdaki komutu veriniz:
# mdadm –examine –scan
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=158bb15a:5c2c4636:776c2c25:004bd7b2
ARRAY /dev/md1 level=raid1 num-devices=2 UUID=75dc21a0:5e11dd36:776c2c25:004bd7b2
ARRAY /dev/md2 level=raid1 num-devices=2 UUID=2aeee9cb:e15b14af:776c2c25:004bd7b2
spares=1Sonrasında düzelip düzelmediğine “# cat /proc/mdstat” komutuyla bakarak eğer düzelmişse recovery işlemine geçebilirsiniz.
-
RAID1 array’i yeniden yapılandırma.
Önceki yazımızda RAID arrayde bulunan bozuk diskin nasıl tespit edileceğini görmüştük. Bu yazımızda bozuk diskin yerine takılan yeni diskin array’e nasıl ekleneceğini göreceğiz. Normalde ubuntu sunucular bu işi yeni disk takılıp sistem açıldıktan sonra otomatik olarak yapmaya başlayabiliyor, ancak zaman zaman sorunlar ile karşılaşmak mümkün oluyor. Örneğin benim vereceğim örnekte md1 array’i nedense inactive durumda. Bu sorunla yüzleştiğimizde neler yapılabilir beraber bakalım:
(Not: bu işlemleri yaparken, herhangi bir veri kaybı yaşamanızdan sorumlu olmadığımı tekrar belirtmek isterim. Önceki yazıda bulunan kurallar aynen bu yazı için de geçerli.)
Öncelikle yeni diskte eş bölümleri oluşturmamız gerekmekte. Bunun için elimizde bulunan ikinci diskin bölümlerini ve Boot kaydını aynen yeni diske geçirmemiz gerekiyor. Bu işlemler için sırası ile şunları yapacağız:
Öncelikle ikinci diskin bölümleme tablosunun bir kopyasını yeni diske çıkartalım.
Hatırlayacağınız üzere bozulan diskimiz “sda” sağlam olan diskimiz de “sdb” idi. Ancak yanlış işlem yapmamanız için öncelikle dolu ve boş diskin hangisi olduğuna sisteminizden bakın:
# fdisk -l
Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x55555555Disk /dev/sda doesn’t contain a valid partition table
Disk /dev/sdb: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00088969Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2102562 fd Linux raid autodetect
/dev/sdb2 263 295 265072+ fd Linux raid autodetect
/dev/sdb3 296 91201 730202445 fd Linux raid autodetectDisk /dev/md0: 2152 MB, 2152923136 bytes
2 heads, 4 sectors/track, 525616 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/md0 doesn’t contain a valid partition table
Disk /dev/md2: 747.7 GB, 747727224832 bytes
2 heads, 4 sectors/track, 182550592 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/md2 doesn’t contain a valid partition table
Benim sistemimde dolu olan disk “/dev/sdb” boş olan yeni disk ise “/dev/sda” olarak görünmekte. Buna göre sdb’deki bölümleme tablosunu aşağıdaki komut ile “sda”ya kopyalayacağız:
# sfdisk -d /dev/sdb | sfdisk /dev/sda
Checking that no-one is using this disk right now …
OKDisk /dev/sda: 91201 cylinders, 255 heads, 63 sectors/track
sfdisk: ERROR: sector 0 does not have an msdos signature
/dev/sda: unrecognized partition table type
Old situation:
No partitions found
New situation:
Units = sectors of 512 bytes, counting from 0Device Boot Start End #sectors Id System
/dev/sda1 3906 4209029 4205124 fd Linux raid autodetect
/dev/sda2 4209030 4739174 530145 fd Linux raid autodetect
/dev/sda3 4739175 1465144064 1460404890 fd Linux raid autodetect
/dev/sda4 0 – 0 0 Empty
Warning: no primary partition is marked bootable (active)
This does not matter for LILO, but the DOS MBR will not boot this disk.
Successfully wrote the new partition tableRe-reading the partition table …
If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
to zero the first 512 bytes: dd if=/dev/zero of=/dev/foo7 bs=512 count=1
(See fdisk(8).)İşlemin başarılı olup olmadığını tekrar “fdisk -l” komutu vererek çıktıdan görebilirsiniz. Eğer şöyle bir çıktı ile karşıltıysanız işlem başarılı demektir:
# fdisk -l
Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x55555555Device Boot Start End Blocks Id System
/dev/sda1 1 262 2102562 fd Linux raid autodetect
/dev/sda2 263 295 265072+ fd Linux raid autodetect
/dev/sda3 296 91201 730202445 fd Linux raid autodetectDisk /dev/sdb: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00088969Device Boot Start End Blocks Id System
/dev/sdb1 1 262 2102562 fd Linux raid autodetect
/dev/sdb2 263 295 265072+ fd Linux raid autodetect
/dev/sdb3 296 91201 730202445 fd Linux raid autodetectDisk /dev/md0: 2152 MB, 2152923136 bytes
2 heads, 4 sectors/track, 525616 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/md0 doesn’t contain a valid partition table
Disk /dev/md2: 747.7 GB, 747727224832 bytes
2 heads, 4 sectors/track, 182550592 cylinders
Units = cylinders of 8 * 512 = 4096 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Disk /dev/md2 doesn’t contain a valid partition table
Bu işlemden sonra Boot record’u kopyalayacağız, önce boot recordun kopyasını dosyaya yazıyoruz:
# dd if=/dev/sdb of=sdb.part bs=1024k count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.0249217 s, 42.1 MB/s# dd if=sdb.part of=/dev/sda bs=1024k count=1
1+0 records in
1+0 records out
1048576 bytes (1.0 MB) copied, 0.00123787 s, 847 MB/sBölümleme işlemleri bittikten sonra sda arrayleri sdb’den geri alma işlemine başlayabiliriz:
# mdadm –manage /dev/md0 –add /dev/sda1
mdadm: added /dev/sda1# mdadm –manage /dev/md1 –add /dev/sda2
mdadm: added /dev/sda2# mdadm –manage /dev/md2 –add /dev/sda3
mdadm: added /dev/sda3Bu mirrorlama işlemleri arka planda devam etmektedir. Durumu görmek için “cat /proc/mdstat” komutunu verebilirsiniz. An be an takip etmek isterseniz şu komut ile konsolun birisinde monitörleme yapabilirsiniz:
# watch -n .5 cat /proc/mdstat
.5 rakamı güncellenme sıklığını saniye cinsinden belirtir 0.5 saniye anlamındadır değer 1 yaparak saniyede bir güncellenmesini sağlayabilirsiniz. Mirrorlama işlemi süresi diskin boyutu ve makinenin gücüne ayrıca başka işlem yapılıp yapılmadığına göre değişiklik göstermektedir.
Every 0.5s: cat /proc/mdstat Tue Jul 23 13:42:47 2013
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] [linear] [multipath]
md1 : active raid1 sda2[0] sdb2[1]
264960 blocks [2/2] [_U]
resync=DELAYEDmd2 : active raid1 sda3[2] sdb3[1]
730202368 blocks [2/1] [_U]
[=====>……………] recovery = 2.2% (16135936/730202368) finish=151.9min speed=78334K/secmd0 : active raid1 sda1[0] sdb1[1]
2102464 blocks [2/2] [UU]unused devices: <none>
Yukarıdaki görüntüde arrayler görünmekte ve bunların bazılarında ufak tefek farklar bulunmakta, bunları açıklamak gerekirse;
- [2/2] [2/1] gibi ibareler md arrayine bağlı bölümlerin kaç tanesinin çalışır durumda olduğunu göstermektedir. md0 arrayinde 2 bölümde çalışır durumda.
- [UU] [_U] gibi ibarelerde ise “U” harfi kullanımda olan bölümlemeleri göstermektedir. “_” ise kullanımda olmayan bölümlemeyi işaret eder.
- md0 cihazı aktif ve sda1 bölümünün kopyası oluşturulmuş. Şu an sorunsuz bir şekilde çalışmakta.
- md1 cihazı resync için “DELAYED” durumunda sıra beklemekte. ikinci bölümleme arraye eklenmiş ancak kullanıma açılmamış
- md2 cihazında şu an resync yapılmakta bu yüzden henüz o da kullanıma açılmamış durumda.
Sonraki yazımız karşılaşılan sorunlar ile nasıl başa çıkılacağına dair olacak.
-
Ubuntu sunucuda RAID1 array içindeki bozuk diski bulmak.
RAID1 sistemdeki diskin bir tanesi bozulduğu zaman izlenecek yöntemler:
Öncelikli işlem sistem henüz açık iken yedek almaktır. Her zaman yedeğinizi alın! Bu işlem sonucunda sisteminizde oluşabilecek sorunlardan tamamen siz sorumlusunuz. Ben yaptım oldu ancak sizin sistemde de aynı sonucu vermeme olasılığı her zaman vardır ve veri kaybı yaşamanız bu olasılık dahilindedir. Bu yüzden bu adımları uygularken yaşayacağını hiçbir kayıptan ben sorumlu değilim. 🙂
Canlı sistemin yedeğini aldıktan sonra bozuk diskin hangisi olduğunu bilmiyorsanız öncelikle bunu tespit etmemiz gerekir.
Sistemde root kullanıcı haklarına nail olup (# sudo -s) /var/log/ altındaki messages log dosyasının içine bakarak bozuk diskin hangisi olduğunu anlayabiliriz. Örnek olarak benim messages dosyasının içeriğini aşağıya ekledim:
kernel: [ 540.541685] ata3.00: configured for UDMA/133
kernel: [ 540.541698] sd 2:0:0:0: [sda] Unhandled sense code
kernel: [ 540.541701] sd 2:0:0:0: [sda] Result: hostbyte=DID_OK driverbyte=DRIVER_SENSE
kernel: [ 540.541704] sd 2:0:0:0: [sda] Sense Key : Medium Error [current] [descriptor]
kernel: [ 540.541709] Descriptor sense data with sense descriptors (in hex):
kernel: [ 540.541711] 72 03 11 04 00 00 00 0c 00 0a 80 00 00 00 00 00
kernel: [ 540.541721] 00 40 3b 8b
kernel: [ 540.541725] sd 2:0:0:0: [sda] Add. Sense: Unrecovered read error – auto reallocate failed
kernel: [ 540.541730] sd 2:0:0:0: [sda] CDB: Read(10): 28 00 00 40 3b 8b 00 00 03 00
kernel: [ 540.541981] ata3: EH completeYukarıda görüldüğü üzere “sd 2:0:0:0: [sda] Sense Key : Medium Error [current] [descriptor]” ve “sd 2:0:0:0: [sda] Add. Sense: Unrecovered read error – auto reallocate failed” satırları “sda” olarak bağlanmış olan diskte “medya hatası” ve “kurtarılamayan okuma hatası” hatası olduğunu söylemekte.
Eğer sda diskin kasanın içindeki hangi disk olduğu konusunda bir fikriniz yoksa sistemi kapatıp disk sökmeye başlamadan önce hangi diski sökmeniz gerektiğini diskin seri numarasına bakarak şu şekilde bulabilirsiniz:
# hdparm -i /dev/sda | grep SerialNo
Model=SAMSUNG HD753LJ, FwRev=1AA01118, SerialNo=S13UJ90SXXXXXXİkinci olarak şu yöntem ile de seri numarasını bulabilirsiniz:
# /sbin/udevadm info –query=property –name=sda | grep ID_SERIAL
ID_SERIAL=SAMSUNG_HD753LJ_S13UJ90SXXXXXX
ID_SERIAL_SHORT=S13UJ90SXXXXXXEğer S.M.A.R.T. verilerini okumayı biliyorsanız mevcut RAID1 yapısındaki iki diskin S.M.A.R.T. verilerine bakarak hangi diskin bozuk olduğunu ve seri numarasını bulabilirsiniz.
# smartctl -x /dev/sda
Bu komut çıktısı çok uzun olduğu ve ekstra açıklamalar gerektiği için yazıyı daha uzatmamak adına buraya eklemiyorum. S.M.A.R.T. verisi nasıl okunur bunu başka bir konuda işleyeceğiz.
Hangi diski sökmemiz gerektiğini öğrendiğimize göre artık sistemi kapatıp doğru diski değiştirebiliriz. Diski değiştirdikten sonra sistemi tekrar yükleyip RAID array’i yapılandırma işine girişeceğiz.