Soru:
Raspberry pi 3 - neden FAT bölümü?
Jessica 6
2016-03-14 18:02:32 UTC
view on stackexchange narkive permalink

Wifi ile Raspberry pi 3 kullanmaya yeni başlıyorum. İndirdiğim Ubuntu resimlerinden biriyle inşa ediyorum. Görüntüyü SD karta yazdıktan sonra ilk bölümün FAT32 olduğunu gördüm. Bu neden gerekli? Aynı şeyi önyüklenebilir USB flaş sürücüler için de gördüm, ancak neden olduğuna dair iyi bir neden bulamadım. StackOverflow.com'a gönderdim ve bunun yerine buraya göndermem gerektiği söylendi. Ama bana pek de bilgilendirici olmayan bir cevap verildi:

"Çünkü önyükleyici yalnızca bir FAT dosya sistemindeki dosyaları nasıl okuyacağını biliyor"

Sorum şu, "Neden?". Demek istediğim, Linux'un normal sabit disk kurulumunun bu oyunu oynaması gerekmez, değil mi?

Teknik detayları daha iyi bilen birinin yapacağı umuduyla tam bir cevap vermeye zahmet etmeyeceğim, ancak bu cevap esasen doğrudur - cihazı başlatan tescilli donanım / firma / yazılımla ilgili olmalıdır (değil açık bir platform). Bu, işletim sisteminden bağımsız olarak tüm pi modellerinde gereklidir ve linux ile ilişkili genel amaçlı önyükleyicileri (ör. GRUB) kullanamazsınız.
Peki bu neden sabit disk kurulumları için geçerli değil? Linux Mint sabit diskimi kontrol edersem, üzerinde FAT32 bölümü görmüyorum. Yoksa fdisk ile görünmüyor mu?
"Cihaz" ile neyi kastettiğimi açıklığa kavuşturacağım * "cihazı" başlatan ** tescilli ** donanım / firma / yazılım (açık bir platform değil) "* - cihaz ahududu pi ve bu bir sabit sürücü, dizüstü bilgisayar veya akıllı telefon vb. değildir (sonuncusuna ilk ikisinden çok daha yakın olmasına rağmen). Normal bir bilgisayar, neyin bağlı olduğunu ve hangi aygıttan önyükleme kodunu yüklemesi gerektiğini kontrol eden yapılandırılabilir bir firma / yazılıma (BIOS, UEFI) sahiptir. Pi, yapılandırılamaması ve tek bir seçenek olması dışında bunu da yapar: SD karttaki ilk fat32 tabanlı bölüm.
... Ve orada bazı özel (?) Önyükleme kodu bulmayı bekler. Bunun tersine mühendislik yapılabileceğine ve yapıldığına inanıyorum (gerçekten tescilli olmayabilir), ancak asıl mesele, nasıl yükleneceğine (ve daha sonra ne için kullanıldığına - inanıyorum ki önyükleme * GPU *, aygıt yazılımını içine yükler, ardından bir işletim sistemi çekirdeğini RAM'e ve CPU'ya uygun şekilde yükler).
Anlamaya başlıyorum, ancak standart bir PC için önyüklenebilir bir başparmak sürücüsü oluştururken bu tür bir şey gördüm: İlk bölüm FAT32'dir. Ahududu pi için aynı olmasının sebebinin bu olduğunu düşündüm. Öyleyse, benim sorum aynı zamanda önyüklenebilir parmak sürücüleri ile ilgili.
Standart PC'de çok büyük önyükleyicili NOR flash bulunur. RPI'nin önyükleyicisi ÇOK daha basittir.
Beş yanıtlar:
GSH
2016-03-17 02:12:01 UTC
view on stackexchange narkive permalink

BCM2837 ilk başlatıldığında, kodunu kalıcı bir depolamadan okuması gerekir, çoğu işlemci bunu NAND flash (yani BIOS) ile konuşarak yapar çünkü çok kolaydır. Ama yapmıyoruz, bunun yerine bootcode.bin adlı bir dosyayı okumak için önyükleme dosyasındaki dosya sistemi okuma kodunu uyguluyoruz ve sonra bunu yürütüyoruz.

Bu nedenle, SD kartı şu şekilde biçimlendirmemiz gerekiyor: uygulaması kolaydır. Ext4'ü uygulamanın ne kadar zor olduğunu merak ettiyseniz, spesifikasyona bir göz atın ... Buna karşılık, FAT kodunu yaklaşık 250 bayt olarak yazdım.

Diğer sorun şu ki SD kartlar, satın aldığınızda geleneksel olarak FAT ile biçimlendirilir ve bu nedenle başka bir şey uygulamanın gerçek bir anlamı yoktur. Diğer tek seçenek, bu destekleyici dosya boyutları> 4GB nedeniyle exFAT'tır.

Ext4 ile biçimlendirirseniz, bir PC'de okuyamazsınız (üçüncü taraf araçlar olmadan), NTFS'yi biçimlendirirseniz bunu bir linux kutusuna yazamazsınız (aslında araçlar vardır, ancak çok güvenilir değildirler), HFS tekrar kapatılır ve paylaşılmaz!

FAT ve exFAT, işletimde ortak olan tek dosya sistemidir sistemler ...

FAT ile FAT32'yi kastediyorsunuz ve exFAT'in bu kadar yaygın olduğundan emin değilim: "Microsoft, tam exFAT dosya sistemi spesifikasyonunu resmi olarak yayınlamadı ve exFAT uygulamalarını yapmak ve dağıtmak için Microsoft'tan kısıtlayıcı bir lisans gerekiyor" [(wiki) ] (https://en.wikipedia.org/wiki/ExFAT#Restrictive_licensing_and_software_patents).
Aslında bu, RPi'lerin neden yalnızca 32GByte'a kadar Flash / USB aygıtlarını desteklediğini açıklıyor - çünkü 64 GB veya daha büyük aygıtlar, tescilli [exFAT] 'ı zorunlu kılıyor gibi görünüyor (https://en.wikipedia.org/wiki/ExFAT ) @jiggunjer'nin işaret ettiği gibi bir FOSS'ta kullanılamayacak dosya sistemi Raspbian gibi işletim sistemi ...
pd_au
2016-03-14 19:49:48 UTC
view on stackexchange narkive permalink

Bu konunun, Pi'nin gerçek zaman saatine (RTC) sahip olmamasına veya LAN'da uyandırma yoluyla neden başlatılamadığına benzer olduğundan şüpheleniyorum. Basitçe söylemek gerekirse, maliyetlerden tasarruf etmek için Pi'nin normal bir PC BIOS'u yok. Bir BIOS, flash ROM'da saklanmalıdır. Pi'ye flash ROM eklemek paraya mal olur. Pi'nin BIOS dosyalarının eşdeğerini SD kartta ayrı bir bölümde depolamak, para tasarrufu sağlar ve daha kolay ve daha az riskli güncellemeye olanak tanır.

Bu bölümün neden FAT32'de biçimlendirildiğine gelince, bunun bir çok basit ve pragmatik uyumluluk seçimi. Çoğu insan Windows kullanıyor (ooh, tüm FOSS fanatiklerinin şakladığını duyabiliyorum ... Üzgünüm ama bu gerçek). Önyükleme dosyalarının (Windows, Linux veya OSX'te) başarıyla yazıldığını doğrulamak için tek bir seçenek vardır: FAT32.

Windows'ta bir ext4 bölümü okumak için DiskInternals tarafından Linux Reader gibi bir program yükleyebilirsiniz, ancak bu, ortalama bir çocuk veya ebeveyn (Pi'nin öncelikli olarak hedeflediği) ile ilgili bir sürü karışıklıktır. tahammül etmek zorunda değilsiniz.

IMHO FAT uygulaması çok kolay olduğu için seçilmiştir. Ext2 veya xfs'den ÇOK daha basittir.
Teknik olarak Pi'nin BIOS sürümünün ilk bölümü okumadan önce çalıştırılan kod olacağını düşünüyorum ...
PaulF8080
2016-03-16 00:43:30 UTC
view on stackexchange narkive permalink

/ boot bu bölümdedir, bu nedenle diski PC'nizdeki bir kart okuyucuya yerleştirir ve /boot/config.txt düzenleme dahil önyükleme sorunlarını düzeltirsiniz.

HankB
2016-03-16 01:23:50 UTC
view on stackexchange narkive permalink

İşletim sisteminin geri kalanını getiren kodu yüklemekten "önyükleyici" (ve çoğu durumda yalnızca "ilk aşama" önyükleyici olan) sorumludur.

Tipik bir PC, BIOS bunu bir disk bölümünde bile bulunmayan kodu kullanarak yapar. Linux durumunda, GRUB (önceden LILO) olacaktı. Bu, Linux / boot bölümüne giden ve onu yükleyen ve daha sonra işletim sisteminin geri kalanını yükleyen koddur.

Pi'de, BIOS'un eşdeğeri SD karta gider ve yüklenecek bir FAT bölümü arar. Tüm bildiğim için, bu bölümün cihazda bazı sabit ofsetlerde bulunması gerekebilir. Bu kodu yükler ve işletim sistemini EXT4 kartından okuyan budur.

UEFI yükleyicileri daha az tanıyorum ve onlar hakkında yorum yapamam. Ayrıca iki önyükleyici aşaması hakkında da doğru olmayabilirim. Daha fazlası olabilir. İlgileniyorsanız, google PC önyükleyici ve daha fazla bilgi bulacaksınız.

jiggunjer
2017-01-19 18:22:25 UTC
view on stackexchange narkive permalink

Bu soruyu yorumlamanın birkaç yolu vardır:

  • Neden tek bir işletim sistemi iki bölüm gerektirir; daha spesifik olarak: iki cilt mi?
  • Bu ekstra bölüm, neden örneğin, bir FAT32 dosya sistemi gerektiriyor? NTFS veya Ext4?
  • (örtük soru?): Bu FAT32 dosya sisteminde hangi dosyalar var.

1. Birincisinin yanıtı :
Teknik olarak iki bölüm gerektirmez, sadece önyükleme dosyalarının bulunduğu bölüm FAT32'dir .
FAT32 çalıştırmak için harika olmadığından tüm bir işletim sistemi geliştiriciler iki dosya sistemi, dolayısıyla iki bölüm kullanmaya zorlanır. Ext4'ün linux OS bölümleri için yaygın olduğuna inanıyorum.

2. Önyükleme dosyaları için neden FAT32? Aşağıdaki nedenleri tahmin ediyoruz :

  • Dosya sistemi sürücüsünü bir önyükleyicide uygulamak için kolay / kompakt. Diğer dosya sistemlerinin çoğu daha karmaşıktır. Bir önyükleyici yazmak kolay değildir, özellikle yonga üzerinde NAND'yi olabildiğince azaltmanız gerekiyorsa.

  • Diğer dosya sistemleri (daha yüksek) lisans maliyetleri içerebilir veya uygun şekilde olmayabilir

  • FAT32 dosya sistemi Windows, MacOS ve Linux gibi yaygın işletim sistemleri tarafından desteklenir. Bu nedenle, SD kart / görüntü üzerindeki dosyalara erişmek için özel sürücüler yüklemenize gerek yoktur.

3. Önyükleme dosyaları lobotomize sürüm gibidir. GRUB ve kapalı kaynak olduklarına inanıyorum. Temel sürücüler (daha sonra yüklenen çekirdek sürücülerinden farklı olabilir veya bunlara eklenebilir) dahil olmak üzere seçtiğiniz çekirdeği yüklemek için gereken tüm dosyaları içermelidir.


ile ilgili olarak benzetmeleriniz:

Aynı şeyi önyüklenebilir USB flash sürücüler için de gördüm [...] Linux'un normal bir sabit sürücü kurulumunun bu oyunu oynaması gerekmiyor, değil mi ?

Aslında yaptılar. Ve bazı durumlarda yapın. Örneğin. Windows 7'yi bir BIOS makinesine yüklemek, önyükleme dosyalarını içeren 100MB NTFS bölümü olan 2 bölüm oluşturacaktır. Linux makinelerinde, önyükleyiciyi (örneğin GRUB) ve çekirdek + sürücü dosyalarını içeren ayrı bir / boot bölümüne sahip olmak yaygındır. Ayırma kesinlikle gerekli değildir çünkü bu önyükleyiciler MBR'yi kullanır, ancak MBR'yi kullanmak, uygun bir dosya sistemi kullanmaktan daha 'hacker'dır. Bu nedenle, daha yeni UEFI önyükleme bellenimi, önyükleme dosyaları için ayrı bir FAT dosya sistemini tercih eder (büyük olasılıkla flash sürücünüzde gördüğünüz şey budur).



Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...