Chroot

From Gentoo Wiki
Jump to:navigation Jump to:search
This page is a translated version of the page Chroot and the translation is 45% complete.
Outdated translations are marked like this.
Resources

Chroot(Change root - Kökü değiştir), var olan kök dizinden farklı bir dizini kök dizin kabul ederek, ana sistemden mantıken bağımsız bir izole ortama geçiş yapmayı sağlayan bir Unix sistem aracıdır. Bu ortam "chroot hapishanesi" diye de anılır. Bu hapishanede çalışan kullanıcı, kendisine kök olarak tanımlanmış dizinin dışarısını göremez.

Chroot'un ana kullanım alanlarından birisi Linux sistemi içerisinde test veya uyumluluk amaçlı farklı bir sistem ortamı yaratmaktır. Sanallaştırma yazılımı gerektirmediği için genelde sanallaştırmaya hafif bir alternatif olarak görülür.

Prerequisites

Ortamın ayarlanması

Yeni bir kuruluma başlarken ilk olarak yapmanız gereken işlem chroot olarak kullanılacak dizinin oluşturulmasıdır, örneğin /mnt/chrootdizini

user $mkdir /mnt/chrootdizini
user $cd /mnt/chrootdizini

Farklı bir disk bölümünde zaten var olan bir kurulumu bağlamak isterseniz aşağıdaki komutu çalıştırabilirsiniz. <AYGIT> yerine kurulumun yapıldığı disk bölümün girdiğinize emin olun:

user $mkdir /mnt/chrootdizini
user $mount /dev/AYGIT /mnt/chrootdizini

Zaten bulunduğunuz kök dizinin altında bir kurulum var ise, yukarıdaki adımları uygulamanıza gerek yok.

Yeni kurulum için sistem ve Portage dosyalarını açma

Yeni bir kurulum yapıyorsanız, sonraki adım stage3 ve Portage sıkıştırılmış dosyalarını indirip chroot dizini içerisine açmaktır. Detaylı bilgi için kurulum dökümanının 5a ve 5b bölümlerine göz atınız.

root #tar xvjpf stage3-*.tar.bz2 -C /mnt/chrotdizini
root #tar xvjf portage-*.tar.bz2 -C /mnt/chrotdizini/usr

Yapılandırma

Chroot'a giriş yapmadan önce bazı dizinleri bağlamamız (mount etmemiz) gerekmekte:

root #mount -o bind /dev /mnt/chrootdizini/dev
root #mount -t proc none /mnt/chrootdizini/proc
root #mount -o bind /sys /mnt/chrootdizini/sys
root #mount -o bind /tmp /mnt/chrootdizini/tmp

Ayrıca ana sistemden bazı temel yapılandırma dosyalarını da kopyalamalısınız. Bu aşamada yeni kurulum değilse make.conf dosyasını kopyalamayın:

user $cp /etc/portage/make.conf /mnt/chrootdizini/etc/portage # Yeni kurulum değilse bu adımı es geçin.
user $cp /etc/resolv.conf /mnt/chrootdizini/etc

Usage

Artık chroot ortamına giriş yapabiliriz:

root #chroot /mnt/chrootdizini /bin/bash
root #env-update
root #source /etc/profile
root #export PS1="(chroot) $PS1"

Yeni kurulum sırasında Pportage'ı senkronize edip herşeyin güncel olduğuna emin olun.

root #emerge --sync

Sistem artık hazır. Yeni yazılım kurabilir, yapılandırma değişiklikleri yapabilir ve dilediğiniz paketleri test edebilirsiniz. Chroot altında yaptığınız işlemlerin ana sisteme herhangi bir etkisi olmayacaktır. Ortamdan çıkıp ana sisteme dönmek için exit komutu verebilir veya Ctrl+D kombinasyonunu kullanabilirsiniz. Bağladığınız dizinleri ayırmayı (umount) unutmayın.

Init betikleri

Eğer bu işlemi sık yapıyorsanız, chroot için gerekli dizinlerin bağlanmasını init betiği kullanarak hızlandırabilirsiniz:

Dosya /etc/init.d/chrootbagla
#!/sbin/runscript
 
depend() {
   need localmount
   need bootmisc
}
 
start() {
     ebegin "Chroot dizinleri baglaniyor"
     mount -o rbind /dev /mnt/chrootdizini/dev > /dev/null &
     mount -t proc none /mnt/chrootdizini/proc > /dev/null &
     mount -o bind /sys /mnt/chrootdizini/sys > /dev/null &
     mount -o bind /tmp /mnt/chrootdizini/tmp > /dev/null &
     eend $? "Chroot dizinleri baglanirken hata olustu"
}
 
stop() {
     ebegin "Chroot dizinleri ayriliyor"
     umount -f /mnt/chrootdizini/dev > /dev/null &
     umount -f /mnt/chrootdizini/proc > /dev/null &
     umount -f /mnt/chrootdizini/sys > /dev/null &
     umount -f /mnt/chrootdizini/tmp > /dev/null &
     eend $? "Chroot dizinleri ayrilirken hata olustu"
}

Eğer farklı bir dizin veya disk bölümü kullanıyorsanız gerekli değişiklikleri yapmayı unutmayın.

Ayrıca bkz.