Raspbian önyükleme işlemi ve bölüm tablosu


13

Raspberry Pi önyükleme işleminin ve disk bölümleme yapısının iyi bir açıklaması var mı?

Her bölümde ne saklanır (ve neden)?

RPI SD karttan (sektör sıfır) önyükleme yapıyor mu yoksa bellenim disk yapısından mı okuyor?

NOOBS herhangi bir O / S altında birkaç dosya kopyalama oluşturulan oluşturulan varsayalım, RPI ürün yazılımı (yüksek düzey) MS-DOS disk yapısı hakkında bilmek ve SD bellek içine yol bulmak.

Kullanılabilir alanı genişletmek için iyi bir SD kartı daha büyük bir SD karta kopyalamak istiyorum.
Yeni bir SD oluşturup bölümleyebilir miyim ve her bölümü yeni cihaza DD ekleyebilir miyim? Hangi bölümlere ihtiyaç var?

'linux'Yeni cihazda bölüm orijinalinden daha büyük olması ve daha sonra disk alanı genişletmek?

Belki yeni bir karta klonlayın ve kullanılabilir alanı kullanmak için sadece son bölümü (p6) uzatın, ancak bir deneme ve hata yöntemi kullanmak istemiyorum, nasıl ve nedenini bilmek isteyeceksiniz.

Neden sorum?

Çoğu RPI SD kartında, bir .img'den takıldığında iki (fdisk) bölüm bulunur.

Device         Boot  Start      End  Sectors  Size Id Type
/dev/mmcblk0p1        2048   155647   153600   75M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      157696 15351807 15194112  7.3G 83 Linux

Ancak 6 kadar bölüme sahip bir tane var, bu NOOBS'den miras alınan yapı.

        Device Boot      Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192     1675781      833795    e  W95 FAT16 (LBA)
/dev/mmcblk0p2         1679360    15499263     6909952   85  Linux extended
/dev/mmcblk0p3        15499264    15564799       32768   83  Linux
/dev/mmcblk0p5         1687552     1810431       61440    c  W95 FAT32 (LBA)
/dev/mmcblk0p6         1818624    15499263     6840320   83  Linux

Bence bu resimde bir sorun var. İki W95 bölümü mü?

Yeni bir karta yalnızca doğru bölümleri klonlamak istiyorum. Tekrar başlamak için bu çalışan SD üzerinde çok çalışmam gerekiyor! (BTW Birkaç iyi yedeklemem var).

Bazı notlar.

bölme p1

-rwxr-xr-x 1 root root  18K 2015-03-09 04:45 bootcode.bin
-rwxr-xr-x 1 root root 2.2K 2015-03-09 04:45 INSTRUCTIONS-README.txt
drwxr-xr-x 4 root root  32K 2015-03-09 04:45 os
...
-rwxr-xr-x 1 root root 542K 2015-03-09 04:45 recovery.elf
-rwxr-xr-x 1 root root    0 2015-03-09 04:45 RECOVERY_FILES_DO_NOT_EDIT
-rwxr-xr-x 1 root root 2.1M 2015-03-09 04:45 recovery.img
-rwxr-xr-x 1 root root  20M 2015-03-09 04:45 recovery.rfs
-rwxr-xr-x 1 root root 9.5K 2015-03-09 04:45 riscos-boot.bin
drwxr-xr-x 2 root root 8.0K 2015-12-05 18:13 System Volume Information

bölme p2

mount: /dev/mmcblk0p2: can't read superblock

bölme p3

-rw-r--r-- 1 root root 274 1969-12-31 19:18 installed_os.json
drwx------ 2 root root 12K 1969-12-31 19:00 lost+found
-rw-r--r-- 1 root root  86 1969-12-31 19:18 noobs.conf

Bölüm p4mevcut değil.

Bölüm p5:

-rwxr-xr-x 1 root root 9.7K 2015-12-01 20:17 bcm2708-rpi-b.dtb
...
-rwxr-xr-x 1 root root  18K 2015-12-01 20:17 bootcode.bin
-rwxr-xr-x 1 root root  120 1979-12-31 19:00 cmdline.txt
-rwxr-xr-x 1 root root 1.5K 2015-11-23 09:01 config.txt
-rwxr-xr-x 1 root root  19K 2015-10-14 05:43 COPYING.linux
...
-rwxr-xr-x 1 root root 9.5K 2015-12-01 20:17 fixup_x.dat
-rwxr-xr-x 1 root root  137 2015-02-16 09:57 issue.txt
-rwxr-xr-x 1 root root 3.9M 2015-12-01 20:17 kernel7.img
...
-rwxr-xr-x 1 root root 591K 2015-12-01 20:17 start_cd.elf
...

Bölüm p6( gerçek raspbian bölümü)

drwxr-xr-x   2 root     root     4.0K 2015-07-28 21:40 bin
drwxr-xr-x   2 root     root     4.0K 2015-02-15 09:09 boot
drwxr-xr-x 119 root     root     4.0K 2015-12-23 15:36 etc
drwxr-xr-x   4 root     root     4.0K 2015-12-19 20:53 home
drwxr-xr-x  15 root     root     4.0K 2015-12-20 22:08 lib
drwx------   2 root     root      16K 2015-02-15 06:21 lost+found
....
drwxr-xr-x  12 root     root     4.0K 2015-11-04 15:18 var

En fazla dört 'birincil' bölümünüz olabilir ve bu toplam bölüm sayısından fazlasına ihtiyacınız varsa p2, genişletilmiş bölüm haline gelmelidir ( bu durumda "Linux" bölümüdür ve kalan bölüm için bir kapsayıcıdır) 4'ten daha fazlasına ihtiyaç duyanlar - ve bu 'mantıksal' bölümleri genişletilmiş bölümün içinde organize etmenin birden fazla yolu var.
SlySven

Yanıtlar:


7

Bir noobs ayarında daha büyük bir SD karta geçmek için son sonucum aşağıdaki gibidir.

Orijinal canlı görüntüyü bir pencere kutusuyla paylaşılan geçici bir harici sürücüye yedekliyorum, yedek bir bellek çubuğu yapacak.

dd if=/dev/mmcblk0 of=~/backup.img

Ayrıca win32DiskImager ile yedekleyebilirsiniz, daha sonra bu kez win32DiskImager kullanarak görüntüyü daha büyük bir SD karta (8'den 16GB'a gittim) yaktım.

Yeni oluşturulan SD'yi başlattım. Bu noktada, SD hala aynı bölümleri, ilkeleri, genişletilmiş ve mantıklı tuttu. Bu yüzden önyükleme sorunsuz bir şekilde çalışmalıdır.

kullanma

fdisk /dev/mmcblk0

pKomutunu kullanarak geçerli bölüm tablosunun canlı ekran görüntüsünü alın .

Fiziksel 'diskin' sonunda bulunan genişletilmiş bölüm # 3'ü (p3) (genişletilmiş bölüm # 2'den sonra) ile silin d.

Ardından, bölüm 2'yi (p2) cesurca silin, iç içe mantıksal bölüm de yok olur.

Genişletilmiş bölümü # 2 yeniden oluşturun, ancak şimdi tüm kullanılabilir alanı kullanarak.
# 2'yi yeniden oluşturmak için, aynı başlangıç ​​orijinal sektörünü kullanın ve fdisksize bitiş sektörünü verelim. Kullanım pdoğrulamak ve tip yeni bir son sektör orijinalinden daha doğrusu büyük olduğunu genişletilmiş tip '85' olduğunu ve.

Önceki iki mantıksal bölümü yeniden oluşturun: mantıksal bölüm # 5 (p5) ile başlayın; başlangıç ​​sektörü için, önceki ekran görüntüsünün tam sektörünü kullanın, bitiş sektörü ile aynı (bu mantıksal disk büyümeyecektir), tkimliği c(MS-DOS) olarak ayarlamak için kullanın . Daha sonra, bölüm 6'yı (p6) öncekiyle aynı başlangıç ​​sektörü ile fakat son sektör fdiskve p' id83 'ile seçilen son sektörle yeniden oluşturun .

Girişlerinizi doğrulayın pve eğer sadece görünüyorsa, bölüm tablosunu waksi halde sadece ^ C ile yazıp tekrar başlayın.

Yeniden başlatın ve parmaklarınızı çaprazlayın. Raspbian iki kez yeniden başlatılabilir.

Sonra dosya sistemini

resize2fs /dev/mmcblk0p6

Bu, ekstra 8GB ile artık sonuç!

 Device Boot             Start         End      Blocks   Id  System
/dev/mmcblk0p1            8192     1675781      833795    e  W95 FAT16 (LBA)
/dev/mmcblk0p2         1679360    30703615    14512128   85  Linux extended
/dev/mmcblk0p5         1687552     1810431       61440    c  W95 FAT32 (LBA)
/dev/mmcblk0p6         1818624    30703615    14442496   83  Linux

Yani, şimdi benim biten sektör 6.840.320'den 14.442.496.

Önyükleme

Bu konunun başka bir yerde olduğunu biliyorum, ancak bunu bilmek güzel.

Ahududu iki yerleşik işlemciye sahiptir: GPU (Grafik İşlem Birimi) ve ARM, her biri farklı bir göreve sahiptir. GPU, belleği endüstri standardı talimat setini çalıştıran çok verimli bir genel amaçlı RISC (İndirgenmiş Komut Seti Bilgisayarı) işlemcisi olan ARM ile paylaşır. Tümü bir BCM2835 'SoC' (Çipli Sistem)

Kumanda açıldığında, önce GPU'ya güç verildiğinde, önyükleme işleminin sonunda yalnızca çekirdek ARM işlemcisinde çalışır.

İlk aşamada, GPU bootcode.binL2 önbellek belleğine yüklemek ve kontrolü geçmek için çip üzerindeki ROM ürün yazılımını çalıştıracaktır . bootcode.bin'start.elf' dosyasını bulmak, yüklemek ve çalıştırmak için SD kartı etkinleştirir, SDRAM'ı etkinleştirir ve ilk MS-DOS bölümünü kullanır.

Bu noktada, aşağıdaki dosyalar bootcode.binSD Karttaki ilk MS-DOS bölümü tarafından dikkate alınır :

/boot/config.txt,  
/boot/cmdline.txt  (kernel parameters)
/boot/bcm????-rpi-*.dtb  (device dependent) 

Özelleştirilebilecek çok sayıda seçenek var config.txt. SD'yi harici bir bilgisayara bağlayan dosyayı düzenleyebilir veya sadece çalışan bir birimde düzenleyebilirsiniz:

nano /boot/config.txt

Karakteristik değişiklikler config.txt ilgili overclock , HDMI , ekran boyutu , yönü , kamera , size set MAC adresini vs.

nano cmdline.txt
dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p6 rootfstype=ext4 elevator=deadline rootwait

Gördüğünüz gibi, önyüklemenin yapılacağı belirtilen önyükleme bölümü kernel.img/ dev / mmcblk0p6'dır ve bu SD kartınızda 'ext4' (fdisk lingo'da Linux veya Id '83') olarak biçimlendirilmiş ikinci bölümdür.

Son olarak, linux çekirdeğiniz start.elfyüklenecek ve çalışacaktır kernel.img.

Çekirdeği rpi-update; orada değilse apt-get install rpi-update).

not: sudokısalık kısalık için silindi.


3

Ahududu PI Boot işlemi için google ise, önyükleme sırası nedir? (bazı küçük değişiklikler olmuştur).

What is stored on each partition (and why)? Bu, nasıl ayarlandığına ve hangi dağıtımın kullanıldığına bağlı olarak değişir.

Does the RPI boot from the SD card (sector zero) or the firmware reads from the disk structure? Hayır.

Can I create and partition a new SD and just DD each partition to the new device? Evet. Her ne kadar kartı klonlamak ve bölümü genişletmek daha iyi olabilir.

Most RPI SD cards have two (fdisk) partitions, perhaps when installed from a .img Raspbian bunu yaparken, FAT32 bölümü normalde SD Kartlar için ideal olan 8192'de başlar. (Bölümler, Erase Block Group 4M sınırında bulunmalıdır.)

However I have one with as many as 6 partitions, some overlapping other sectors, perhaps this is the structure when started/inherited from NOOBS. Genişletilmiş bölümleri anlamanız gerekir. Wiki'yi deneyin.


Sorumun odak noktası, NOOBS'nin SD'sindeki disk alanını genişletirken hangi bölümlerin gerekli olduğu ve hangi bölümlerin olmadığıdır.
fcm

1
Hepsine ihtiyacınız var. Kurtarma bölümündeki bazı dosyaları silebilirsiniz. NOOBS'u standart Raspbian'a dönüştürmek yapılabilir, ancak (aslında biraz) biraz uğraşmak gerekir. Raspbian (p6) 'yı standart bir Raspbian FAT32 önyükleme bölümü ile minimum değişikliklerle (/ etc / fstab) kullanabilirsiniz.
Milliways
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.