Raspberry Pi'yi bir NFS kökü ile başlatacak şekilde nasıl yapılandırabilirim?


25

Raspberry Pi'min SD kart yerine kök dosya sistemi için NFS sunucusu kullanmasını nasıl sağlayabilirim?

Raspberry Pi'mi, kök dosya sistemini uzak bir makinede NFS aracılığıyla performans / yedekleme / geliştirme amacıyla kullanmak üzere ayarlayabilmek istiyorum. Bunu nasıl yapabilirim?


İpucu için #iface eth0 inet dhcp'nin (/ mnt / rpi-root / etc / network / interfaces) yorum yapması için çok teşekkür ederiz. Bu değişiklik olmadan, ilk çalışan NFS önyüklememi neredeyse bir hafta boyunca yapamadım. Bu haberleri başka hiçbir yerde okumamıştım. Çok teşekkürler

Yanıtlar:


24

Kısa versiyonu

  1. Bir kök hazırlamanız ve NFS makinesinden vermeniz gerekir.
  2. Bunu kullanmak için erken aşamada önyüklemeyi yapılandırmanız gerekir

Erken aşamada önyükleme için hala bir SD karta ihtiyacınız olacak, ancak bundan sonra / boot dışında hiçbir şey SD karta ihtiyaç duymayacak.

ayrıntılar

Bunu sadece bir Linux makinesinde yaptım. Teoride, NFS dosya sistemlerini dışa aktarabilen herhangi bir makinede mümkündür.

  1. Kök dosya sistemi hazırlamanın en kolay yolu, mevcut görüntüler tarafından sağlanan kopyalamaktır. Kullandığım resmi Debian 6 görüntüyü benim başlangıç noktası olarak:

    1. Resmi indirin, .zip dosyasını çıkartın. Şimdi bir yerde debian6-19-04-2012.img olmalı
    2. Bir geridöngü aygıtı kullanarak bu görüntüden kök bölümünü bağlayın. Kök bölümünün başlangıcı için görüntünün dengelemesi gerekir, bu durumda görüntüdeki ikinci bölümdür:

      fdisk -l debian6-19-04-2012.img
      
      Disk debian6-19-04-2012.img: 1949 MB, 1949999616 bayt
      4 kafa, 32 sektör / parça, 29754 silindir, toplam 3808593 sektör
      Birimler = 1 * 512 = 512 bayt olan sektörler
      Sektör boyutu (mantıksal / fiziksel): 512 bayt / 512 bayt
      G / Ç boyutu (minimum / optimal): 512 bayt / 512 bayt
      Disk tanımlayıcısı: 0x000ee283
      
      
      Cihaz Başlangıcı Başlangıç ​​Uç Blokları Id Sistemi
      debian6-19-04-2012.img1 2048 155647 76800 c W95 FAT32 (LBA)
      debian6-19-04-2012.img2 157696 3414015 1628160 83 Linux
      debian6-19-04-2012.img3 3416064 3807231 195584 82 Linux, takas / Solaris
      rapunzel @ root: / tmp / debian6-19-04-2012 # 
      

      İkinci bölüm 157696 numaralı blokta (veya sektör) başlar, böylece ofset (512 * 157696) = 80740352:

      Kök @ rapunzel: / tmp / debian6-19-04-2012 # mkdir / mnt / pi-root-loop
      Kök @ rapunzel: / tmp / debian6-19-04-2012 # mount -o döngü, ofset = 80740352 /tmp/debian6-19-04-2012/debian6-19-04-2012.img / mnt / pi-root- döngü
      Kök @ rapunzel: / tmp / debian6-19-04-2012 # ls / mnt / pi-kök döngüsü
      bin Masaüstü vb lib mnt proc sbin selinux sys usr
      önyükleme dev ev medya opt kök sd srv tmp var
      rapunzel @ root: / tmp / debian6-19-04-2012 #
      
    3. Görüntü monte edildiğinde, geri döngü cihazını sonsuza dek kullanmaktan kaçınmak için muhtemelen bunu daha kalıcı bir yere kopyalamak istersiniz. Bir LVM2 birimi oluşturdum ve / mnt / rpi-root dizinine yerleştirdim, böylece yaptım:

      cp -rav / mnt / pi-kök döngüsü / * / mnt / rpi-kök /
      
    4. Dosya sistemini şimdi dışa aktarmamız gerekiyor, bu nedenle şöyle bir satır eklememiz gerekiyor:

      / mnt / rpi-root 192.168.1.2 (rw, no_root_squash)
      

      NFS sunucusunda / etc / export bölümüne girilir, 192.168.1.2, Raspberry Pi'nin adresidir. Bu çalıştırmayı ekledikten sonra exportfs -rvihracat listesini tekrar okuyun. ( Tek tek ana bilgisayarlar yerine joker karakterler / alt ağlar dahil olmak üzere daha gelişmiş seçenekler için dışa aktarmalara (5) bakın )

    Alternatif olarak, bu adımı atlayabilir ve benzeri bir şey kullanarak sıfırdan bir kök dosya sistemi oluşturabilirsiniz multistrap.

  2. Şimdi erken aşamada önyükleme yapan ve bu NFS paylaşımını kullanarak önyükleme yapan bir SD kart oluşturmamız gerekiyor. Bunu resmi görüntünün ilk bölümünü alarak ve bunu SD kartın / dev / sdx olduğu bir SD kartına kopyalayarak yaptım:

    gg eğer = / tmp / debian6-19-04-2012 / debian6-19-04-2012.img = / dev / sdx bs = 512 sayım = 155647
    

    ve sonra bu sadece kopyalamadığımız iki bölümü silmek için fdisk ile bölüm tablosunu düzenleyen ilk bölümü kopyaladığından.

    Bundan sonra bölümü SD karttan monte ettim ve cmdline.txt dosyasını okumak için düzenledim:

    dwc_otg.lpm_enable = 0 konsol = ttyAMA0,115200 kgdboc = ttyAMA0,115200 konsol = tty1 kök = / dev / nfs nfsroot = 192.168.1.1: / mnt / rpi-root ip = dhcp rootfstype = nfs
    

    192.168.1.1 NFS sunucusunun adresidir. DHCP kullanmak istemiyorsanız, IP adresini alternatif yollarla ayarlayabilirsiniz, daha fazla ayrıntı için bu belgeye bakın.

    Bu yapıldıktan sonra SD kartı çıkarabilir ve Rapsberry Pi'nizi bir NFS kökü ile başlatabilirsiniz. Dosya sistemini sunucu tarafında veya diğer NFS istemcilerinde uygun gördüğünüz şekilde değiştirebilirsiniz (örneğin, QEMU + binfmt_misc , LVM anlık görüntüleri, yedekleme sistemleri vb.)

İsteğe bağlı şeyler

  • RAMRUN ve RAMLOCK öğelerini / etc / default / rcS konumunda evet olarak ayarlamak, sırasıyla / var / run ve / var / lock öğesinin tmpfs (örneğin, ramdisk) olarak bağlanmasına neden olur - bu, muhtemelen cihazdan gelen bir aygıtınız olsa bile NFS dosya sistemi.
  • İp = dhcp kullanıyorsanız, muhtemelen şu satırı yorumlamanız gerekir:

    #iface eth0 inet dhcp
    

    Erken önyükleme DHCP'si ile normal olandan sonraki işlem arasında geçiş yapmanın neden olduğu bir durumdan kaçınmak için / etc / network / interfaces (/ mnt / rpi-root / etc / network / interface) 'de:

    nfs: server 192.168.1.1 cevap vermiyor, hala çalışıyor

  • Aynı kökten çok sayıda aygıt önyüklemek istiyorsanız, aynı dosyalara yazmaya çalışan birden fazla makineyle ilgili sorunları önlemek için bir "yerel" / tmp (muhtemelen tmpfs) ve diğer inceliklerle ilgilenmeniz gerekir.


Bu detaylı eğitim için teşekkürler. Son görüntü ile mükemmel çalışıyordum. Şimdi iki gün önce yayınlanan yeni görüntü için aynı adımları izlemeye çalıştığımda hatayla karşılaştım. Kök dosya sistemini kontrol etmek şu hata ile başarısız olur: fsck.ext4: Açmaya / çalıştırmaya / rootdev açmaya çalışırken böyle bir cihaz ya da adres yok Muhtemelen var olmayan ya da takas eden bir cihaz mı var? fsck çıkış durumuyla 8 öldü. Herhangi bir öneriniz var mı? Klaus

Şu anda kontrol etmek için bir cihaza erişimim yok. Çekirdek gibi sesler, nfs root desteği olmadan inşa edilebilir.
Flexo

1
Çözümü bulduğum anlaşılıyor. Fstab'ı değiştirdim: proc / proc proc varsayılanları 0 0 / dev / mmcblk0p1 / önyükleme vfat varsayılanları 0 2 # / dev / mmcblk0p2 / ext4 varsayılanları, noatime 0 1 Bir önceki görüntüyle çalışmasının nedeni bu. Sadece çalıştırılamadı: S05checkroot.sh. BTW: Takas bölümünün nasıl yönetileceği hakkında bir fikriniz var mı? İhtiyacımız var mı?

Yarısı kıçını almak ve her şeyi sadece NFS yapmak mümkün mü ? yani. ev sahibi ihracatı /home/user/Documents/raspisRootFolderve müşterinin fstabsadece her şeyi /nasıl oluşturduğu?
puk

Harika cevap, beni başarısız bir SD karttan kurtardı; her şeyi NAS sunucuma taşıdım. Ben de dışarı yorumladı /dev/mmcblk0p2 / ext4 defaults,noatime 0 1dan /etc/fstabsana bırakın eğer herhangi bir sorun yaratmadan başarısız olacağını düşünüyorum rağmen.
TomG
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.