LiveCD kullanarak sistemi açmak

Gentoo Linux Wiki sitesinden

Git ve: kullan, ara

Konu başlıkları

[değiştir] Giriş

Bazen linux kurulu bir sistemin herhangi bir sebepten (başka bir işletim sistemi önyükleme kaydının (MBR) üzerine yazmış olabilir, ya da açılış skriptleri ya da çekirdek yapılandırması ile ilgili bir problem olabilir) önyükleme (boot) yapamadığı durumlar olabilir.

Bu eğitselin amacı chroot komutu kullanarak hemen hemen tüm livecd (ya da başka bir linux) ortamı kullanarak problemin teşhis edilip düzeltilmesidir.

[değiştir] Kısıtlamalar

Her ne kadar chroot komutu kullanarak livecd'den yapılan bir kurulum mükemmel işlevsellik sağlasa da, tek başına eksiksiz olmayacaktır. Örneğin chroot yapılan sistem hala livecd'nin kullandığı çekirdeği kullanacaktır. Bu da ilgili gerekli çekirdek sürücülerinin henüz yüklenmediği anlamına gelir. Ve bu çekirdek sürücüleri chroot kullanılmadan önce modprobe komutuyla yüklenmelidir. Aynı sebepten dolayı, sadece chroot yapılan sistemde kullanılabilir çekirdek modülleri (örneğin ndiswrapper ya da üçüncü parti çekirdek modülleri) yüklenemez.

Sürücü problemini çözmek için, ya gerekli sürücüleri içeren bir livecd bulmalı ya da alternatif olarak sisteme özel bir livecd oluşturmalısınız.

[değiştir] Bilmeniz gerekenler

Bu eğitsel üzerinde çalıştığınız sistem üzerindeki donanımları ve bu donanımlar tarafından ihtiyaç duyulan sürücülerin (özellikle çekirdek modüllerinin) neler olduğunu bildiğinizi varsayıyor. Ayrıca Gentoo El Kitabını kullanarak bir Gentoo kurulumu yapmış birisi kadar da (çünkü buradaki adımlar ve yönergeler çok benzer) linux komut satırını kullanabildiğinizi varsayıyor.

[değiştir] LiveCd ortamını hazırlamak

Kurulum yapılacak ortama chroot ile geçiş yapmadan önce, livecd ortamı aşağıdakı adımlar uygulanarak hazırlanmalıdır:

  • Gerekli tüm çekirdek modüllerini yükleyin.
  • Ağı kurun
  • Var olan tüm takas alanlarını etkinleştirin, örneğin (/dev/hda2 dizini bir takas alanı ise):
    swapon /dev/hda2

[değiştir] Kurulu sistemi bağlamak

İlkönce dosya sistemlerini bağlama ile ilgili ufak bir not. Her ne kadar chroot yapılarak girilen sistemden de dosya sistemlerini bağlamak mümkün olsa da bu tavsiye edilmez.Bunun sebebi chroot ile girilen sistemden bağlama yapıldığında, livecd ortamını bu bağlanacak bölümler hakkında hiç bir şey bilmez. Bu yüzden eğer bağlanan sistemler unutulur ve bağlı olarak bırakılırsa, sistem kapandığında doğru bir şekilde ayırma işlemi yapılmaz, bu da bağlanan bu bölümler üzerindeki dosya sistemlerine zarar verebilir.

Önceden kurulmuş sistemin root bölümünü (ve eğer gerekiyorsa /boot) bölümlerini bağlayın. Eger farklı bölümler için sistemin farklı bölümleri tanımlanmışsa (örneğin /var/log için farklı bir bölüm) ayrıca bunların da bağlanması gerekir.

Aşağıdaki örnekte, /dev/hda1 /boot bölümü ve /dev/hda3 root bölümü olarak belirlenmiş.

Ek olarak, /dev (aygıtların olduğu bölüm) ve /proc dosya sistemlerini de bağlayın böylelikle chroot yaparak girdiğimiz sistemde bunlar da kullanılabilsin.

mount /dev/hda3 /mnt/gentoo mount /dev/hda1 /mnt/gentoo/boot mount -t proc none /mnt/gentoo/proc mount -o bind /dev /mnt/gentoo/dev

[değiştir] Chroot yaparak sisteme giriş

Chroot yapmadan önce, /etc/resolv.conf'un üzerine yazmak isteyeceksiniz, böylelikle giriş yapmak istediğimiz ortam alan adlarını çözebilir hale gelecek:

cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf

Chroot yaparak bir ortama giriş yapmak için kullandığımız adımlar Gentoo El Kitabında anlatılanların aynısı:

  • Chroot yaparak sisteme gir.
  • Girilen ortamın doğru olduğundan emin ol.
  • Komut satırına bir hatırlatıcı ekle.
# chroot /mnt/gentoo /bin/bash # env-update # source /etc/profile # export PS1="(chroot) $PS1" (chroot)#

[değiştir] Özel Durumlar

[değiştir] Grub Önyükleyicisini Tekrar kurmak

Grub o anda hangi dosya sistemlerinin bağlı olduğunu öğrenmek için /etc/mtab dosyasını kullanılır, bü yüzden bu dosya güncel olmalı. Bu dosyayı /proc/mounts dizininden bu komutu kullanarak güncelleyebilirsiniz:

cp /proc/mounts /etc/mtab

[değiştir] chroot ile girilen sistemden çıkış

Yapacağınız işler bittiğinde, tüm çalışan programların sonlandığından emin olun, bağlanan bölümleri ayırmak ve chroot kullanarak sistemden çıkmak için şu komutları kullanın. /mnt/gentoo bölümünü ayırmadan önce başka bağlı olarak kalmış hiç bir bölüm kalmamasına dikkat edin.

(chroot)# exit # umount /mnt/gentoo/boot /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo

Eğer ayırmak istediğiniz bölümün meşgul olduğunu belirten bir uyarı alırsanız bunun iki nedeni olabilir:

  • chroot yapılarak girilen dizinde çalışan bir program kalmıştır.
  • Ya da daha sıklıkla: Bir bölüm hala bağlı kalmıştır.Örneğin /mnt/gentoo bölümünü ayırmaya çalışırken, /mnt/gentoo/boot bölümü hala bağlı kalmış olabilir.

İkinci durumda ilkönce bağlı kalmış olan bölümü ilkönce ayırın. Geçerli bağlantıları görmek için mount komutunu hiç bir parametre almadan kullanın.

[değiştir] Sorun giderme

[değiştir] Exec format error

Eğer chroot komutu "chroot: cannot run command `/bin/bash': Exec format error" gibi bir hata döndürürse, bu livecd ortamının chroot ile girilmek istenen sistemle uyumlu olmadığını gösterir.

Bu hata genellikle chroot yapılarak 32-bit'lik (örneğin. x86) bir livecd ile 64-bit'lik (örneğin. amd64) bir sisteme girilmek istendiğinde görülür.

Çözüm kurulu olan sistemle aynı mimariyi kullanan bir livecd kullanmaktır.

[değiştir] Yazarlar

  • Çeviren: Gentoo - 04 Kasım 2008


Yazarlar bu döküman üzerinde çalışan ve içeriğinde belirgin değişiklik yapan kişilerdir. Eğer bu dökümanı siz düzenlediyseniz ve kendinizi yazarlar listesine eklemek istiyorsanız lütfen "Yazarlar Kim" bölümünü okuyun.

Diğer diller