Bir “değiştirme” dağılımına kromatolasyon yaparken proc, sys vs.'den hangileri bağlanmalı (veya takılmamalıdır)?


9

Başka bir soruya verilen bu cevap, temel chrootolarak bunu çok sınırlı (ama yeri doldurulamaz) ebeveyninin yerine kullanmak için başka bir Linux dağıtımına girmektir. Daha chrootiyi anlamak istiyorum çalıştırmadan önce önerilen eylemler şunlardır:

cp /etc/resolv.conf etc/resolv.conf
cp -a /lib/modules/$(uname -r) lib/modules
mount -t proc archproc proc
mount -t sysfs archsys sys
mount -o bind /dev dev
mount -t devpts archdevpts dev/pts
  • Kopyalama resolv.confaçık (ağ / internet erişimi), emin değilim modules- chrootbir stage3 Gentoo sistemine girerken bu aslında gereksiz görünüyordu , değil mi?
  • Fakat niçin proc, sysve dev/ptskullanmak yerine yeniden monte bağlama monte? Bu durumda "daha doğru" olan gerçek fark nedir ?
  • Bu Nasıl Yapılır bağlanır procve devne takılır ne dev/ptsde systakılır. Ayrıca /etc/{hosts,fstab}yeni köke kopyalar . bu mantıklı mı? O zaman ben de eklememeliyim /etc/mdadm.conf?

1
Çoğunlukla aynı olmalıdır; normal dosya sistemlerini göz önünde bulundurun: iki kez monte edilmemelidirler (küme farkında olmadıkları sürece), ancak çekirdek tam olarak bunu yapar; bu yüzden aslında dahili olarak bir bağlama yuvası gibi ele alınır.
frostschutz

Yanıtlar:


9

/etc/resolv.conf, DNS'leri kaybetmemek için kopyalanır.

/ lib / modules kopyalanır, çünkü krootun ayarlanması sırasında bulunması gerekmeyen bazı donanım bileşenlerinin kullanılması gerekebilir. OP'nizde bahsettiğiniz orijinal sorunun bir NAS OS'nin Arch Linux ile değiştirilmesi ile ilgili olduğunu unutmamalısınız. Bu nedenle, ethernet, muhtemelen kablosuz, çeşitli USB bileşenleri vb. İçin sürücülere ihtiyacınız olacaktır. / Lib / modules klasörünün kopyalanması, yeni ortamın gelecekteki görevleriyle başa çıkabilmesini sağlar.

Gerçekten, yeniden bağlama veya bağlama yerine takma konusunda haklısınız. Chroot'dan üzerinde Arch Linux Wiki sayfası kullanımı yeniden montaj ve belirttiğiniz gibi bakın mesaja cevap gereğince, bağlama-montaj yapar:

cd /mnt/arch
mount -t proc proc proc/
mount -t sysfs sys sys/
mount -o bind /dev dev/
mount -t devpts pts dev/pts/

(Bu yakalanan görünen kopyalanmış Hatlarınızın, sözdizimini düşünmek bu yazı , yanlıştır: dev bağlama noktası önündeki monte edilecek).

Ancak, chroot'taki Ubuntu man sayfası farklı bir hikaye anlatıyor:

sudo mount -o bind /proc /var/chroot/proc

Burada / proc, bağlanmış, yeniden takılmamış.

Aslında her iki şeyi de denedim ve kısa bir test çalışmasından sonra hiçbir fark göremedim. Kuşkusuz bir testten fazlası yok ve bu yüzden davamın burada çok fazla fark yaratmaması gerektiğine dayanacağım.


6
  • /etc/resolv.conf- DNS isteklerini çözmek için bu dosyaya ihtiyacınız var. Bazı durumlarda gerekli değildir:

    1. chroot'ta bir DHCP istemcisi kullanılabilir, yürütülür ve DHCP sunucusu uygun bilgileri döndürür (genellikle durum böyle).

    2. /etc/resolv.confchroot'un içinden ağ oluşturma (veya olağan uygulamalardan güvenilen DNS sorgularını daha hassas bir şekilde yapma) ile ilgilenmezsiniz .

  • /lib/modules/$(uname -r)- etkin çekirdek için herhangi bir ek modül yüklemeniz gerekebileceğinde mantıklıdır. Bu olmadan, şu anda koştuğunuz her şeye sıkışmış olacaksınız. Bu nedenle, krootlu sistemi daha uzun süre çalıştırmak istiyorsanız, muhtemelen yapmalısınız. Öte yandan, bu durumda muhtemelen pivot_rootbunun yerine kullanmalısınız (bu genellikle initrd'nin ömrünün sonunda yaptığı şeydir). Sadece bootloader'ı chroot'tan kurmak için yapmanız gerekiyorsa, krootu yine de yapabilmeniz için gerekli tüm sürücüler yüklenmelidir).

  • /procve /devoldukça açıktır - bunlar temel sistem arayüzlerini içerir.

  • /sysIIRC değildi o yaygın (kendisi oldukça muhafazakar olan) Slackware nasıl yapılır tarihli budur 2007'de geri kullandı. Bu günlerde sisteminiz onsuz bir şekilde başarısız olabilir (örneğin, bir şey bir tür donanımı numaralandırmaya çalıştığında).

  • /dev/pts- yıllar içinde /devağacın işlenme biçiminde birkaç değişiklik oldu . Bir noktada cihazların /dev/ptstarafından ele alındı devfsörneğin bkz - Bu LKML iplik olası sorunların tartışılması için.

  • bağlama bağlantısı - bağlama bağlantılarının bazı ilginç yönleri vardır (oldukça mount(8)man sayfasında açıklanmıştır ). Örneğin:

    /some/device on /x/a (rw)
    /x/a/A on /x/b (rw)
    

    ve daha sonra /x/asalt okunur olarak yeniden monte ederseniz, hiçbir şeyi değiştiremezsiniz /x/B. Bu anlaşılabilir, ancak ilk kez sizi şaşırtabilir. Başka bir iyi soru, /x/byukarıdaki örnekte ne zaman olması gerektiği umount /x/a. Benim için, altındaki ağaca hala erişebilmeniz çok açık değil. Bu nedenle bağlama montajı zor olabilir. İşlevsel olarak, tüm dosya sisteminde kullanıldığında aynıdır.

  • diğer şeyler /etc/- kullanılan ilgili yapılandırmayı kopyalamak kesinlikle mantıklıdır. Örneğin Kopyalama /etc/passwd, /etc/shadow, /etc/groups olabilir için mantıklı, yanı sıra sunucu anahtarlarını yapmak sshd.


Her iki cevap da aynı derecede iyi - bu yüzden kabul etmek için bir para
attım

0

/procişlemleri yönetir ve sysçekirdek parametrelerini veya geçerli çekirdeğin erişim bilgilerini değiştirir.

Şimdi, bağlamanın iki yönlü bir doğayı ima ettiği göz önüne alındığında, procen iyi çözüm olarak krotanın dışına monte edilmemelidir.

sysolabilir, ancak geçerli çalışan çekirdek ana bilgisayarına dayanır ve devbağlanma ile aynı şekilde olmalıdır .

/dev/ptszaten bağlanmış olarak mevcuttur /dev, ancak krootun bir parçasıdır, bu nedenle yenisinin yeniden takılması ptsönerilir mount -t devpts none /mnt/drive/dev/pts.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.