Soru:
Temel Raspbian'ı bir görüntü kullanmadan depodan yükleyin
Ingo
2018-01-24 03:13:23 UTC
view on stackexchange narkive permalink

Raspbian'ın yükleyicisi yok, peki debootstrap ile başlayarak onu nasıl kurabilirim? Debian ile nasıl çalıştığını burada bulabilirsiniz: Debian'ı debootstrap ile yükleyin ve paket şurada bulunabilir: Debootstrap for Raspbian.

Kimse var mı bunu nasıl bir araya getireceğini kim bilebilir?

Neden SD karta bir görüntü yazamıyorsunuz?
@SteveRobillard Test ve geliştirme için sadece debootstrap ile çıplak bir imaj istiyorum, böylece gerekli paketleri kurarak kurulumumu adım adım artırabilirim. Böyle bir görüntü biliyor musun?
Iki yanıtlar:
Ingo
2018-01-25 07:14:20 UTC
view on stackexchange narkive permalink

━━━ Intel işlemcili bir Linux bilgisayar kullanarak kurulum ━━━

Bu kurulum, intel işlemcili başka bir bilgisayar kullanıyor. Kurulumu bir Raspberry Pi üzerinde çalıştırmak istiyorsanız, buradaki diğer cevaba bakın: Raspberry Pi kullanarak kurulum. Mümkünse, bu kurulumu tavsiye ederim.

Intel işlemcili bir bilgisayarda armhf mimarisiyle debootstrap çalıştırmalıyız. Bu yalnızca bir emülatör ile mümkündür. Qemu , bunu yapabilen bir programdır. Bu nedenle, bunu debootstrap ve gerekli ek paket binfmt-support 1 ile birlikte yüklemeliyiz sup>. Debian GNU / Linux 9.4 (streç) arch x86_64 kullanıyorum. debootstrap ve qemu içeren diğerleri de çalışmalıdır:

  pc ~ $ sudo apt install binfmt-support qemu qemu-user-static debootstrap  

Raspbian deposunun bütünlüğünü kontrol etmek için raspbian.public.key 'e de ihtiyacımız var. Bu yüzden onu indirip uygun anahtarlığa aktarıyoruz /etc/apt/trusted.gpg :

  pc ~ $ wget http://archive.raspbian.org/raspbian.public.key -O - | sudo apt-key add -q  

Şimdi bootstraped Raspbian'ı kurmak istediğimiz SD Kartı hazırlıyoruz. Referans olarak Raspbian Stretch Light 2018-06-27 kullanıyorum. İndirin ve SD Karta yükleyin. RasPi'nizle başlayın, oturum açın ve kapatın. Bu, varsayılan önyükleme sırasını somutlaştırmak için gerekli gibi görünüyor.

Ardından bunu bilgisayardaki kart okuyucuya yerleştirin. Örneğim için / dev / sdb 'ye eklenmiştir. İkinci bölümü ext4 ile biçimlendirin ve bu bölümü bağlayın:

  pc ~ $ sudo -Espc ~ # mkfs.ext4 - FL rootfs / dev / sdb2pc ~ # mkdir / mnt / sdb2pc ~ # mount / dev / sdb2 / mnt / sdb2  

Şimdi Qemu ile debootstrap 'den basit bir Raspbian kuruyoruz:

  pc ~ # qemu-debootstrap --keyring = / etc / apt / trust.gpg --arch armhf stretch / mnt / sdb2 / http://mirrordirector.raspbian.org/raspbian/

yükleme için yükleme hazırlığı tamamlandı. Bir fstab oluşturmalıyız:

  pc ~ # cat > / mnt / sdb2 / etc / fstab <<EOFproc / proc proc varsayılanları 0 0 / dev / mmcblk0p1 / boot vfat varsayılanları 0 2 / dev / mmcblk0p2 / ext4 varsayılanları, noatime 0 1EOF  

İlk oturum açma için kök parolayı temizleyin. Yeni pibootstrap'a ilk giriş yaptıktan hemen sonra bir şifre ayarlamayı UNUTMAYIN !

  pc ~ # sed -i ' s / ^ root: x: / root :: / '/ mnt / sdb2 / etc / passwdpc ~ # sed -i' s / ^ root: *:. * $ / root :::: / '/ mnt / sdb2 / etc / shadowpc ~ # umount / dev / sdb2pc ~ # e2fsck -f / dev / sdb2pc ~ # exitpc ~ $  

SD Kartı RasPi'ye yerleştirin ve önyükleyin.

Sadece 276 MB disk alanı tüketen çok küçük ama çalışan bir Raspbian'ımız var. Bu, net test ortamları oluşturmak veya nasıl çalıştığını adım adım öğrenmek için iyi bir başlangıç ​​noktasıdır. Belki de önce normal bir kullanıcı için bir hesap oluşturur ve ağ bağlantısını yapılandırırsınız, böylece yazılım paketlerini kurmak için apt kullanabilirsiniz.

systemd için temel Raspbian'ı kurun

Şifre olmadan root olarak giriş yapın. Ardından çıkarın:

  rpi ~ # passwd  

Ardından şunu yapın:

  rpi ~ # mkdir -p / var / log / journalrpi ~ # systemd-tmpfiles --create --prefix = / var / log / journal # ignore warningrpi ~ # apt --autoremove purge ifupdownrpi ~ # cat > /etc/systemd/network/04-eth.network <<EOF [Match] Name = e * [Ağ] DHCP = yesEOFrpi ~ # systemctl systemd-networkd.service'i etkinleştir
rpi ~ # systemctl enable systemd-resolved.servicerpi ~ # ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.confrpi ~ # systemctl start systemd-networkd.servicerpi ~ # systemctl start systemd-resolved.service  

/etc/apt/sources.list ve /etc/apt/sources.list.d/raspi.list dosyasını bir varsayılan Raspbian kurulumu. Ardından:

  rpi ~ # echo 'APT :: InstallRecommends "false";' > /etc/apt/apt.conf.d/99install-recommendsrpi ~ # apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553rpi ~ # apt-key adv --keyserver keyserver.ubuntu.com - -recv-keys 7638D0442B90D010rpi ~ # apt updaterpi ~ # apt install dirmngrrpi ~ # apt full-upgraderpi ~ # apt install libraspberrypi-bin raspberrypi-kernel raspberrypi-sys-modsrpi ~ # apt install sudo bash-complete lvm2 dbus11 firmware-brcm2 dbus11 # adduser pirpi ~ # useradd - sudo grupları, adm piadd - sudoers: # Sudo grubunun üyelerinin herhangi bir komutu çalıştırmasına izin ver% sudo ALL = (ALL: ALL) NOPASSWD: ALLrpi ~ # #change hostnamerpi ~ # sed -i 's /.*/raspberrypi/ '/ etc / hostnamerpi ~ # echo "127.0.1.1 raspberrypi" >> / etc / hosts  

Yeniden başlatın.


referanslar:
[1] EmDebian CrossDebootstrap
[2] man apt-key
[3] man debootstrap

Ingo
2019-07-02 01:43:59 UTC
view on stackexchange narkive permalink

━━━ Raspberry Pi kullanarak kurulum ━━━

Bu kurulum, kurulum için bir Raspberry Pi kullanır. Başka bir bilgisayar kullanmak istiyorsanız, buradaki diğer yanıta bakın: Intel işlemcili bir Linux bilgisayar kullanarak kurun.

İki SD Karta ihtiyacınız var, biri RasPi'yi ve biri RasPi'nin USB bağlantı noktasına SD Kart okuyucunuza takılıdır. Benzer oldukları ve birçok ortak kurulumları olduğu için iki kurulum yolu sunmaya çalışacağım. İlk olarak, varsayılan Raspbian Buster görüntüsünde olduğu gibi Raspbian'ı iki birincil bölüme kuracağım. Bu, yeni başlayanlar için veya hızlı çalışan bir sistem elde etmek için daha az hataya eğilimlidir. Diğer yolda mantıksal hacimleri kullanacağım çünkü kolay yedekleme, anlık görüntülerden geri yükleme, acil kurtarma ve diğerleri için güzel özelliklerini kullanmayı seviyorum. COMMON, PRIMPART (birincil bölümler) ve LVM ile kurulumları değerlendirdim. Birincil bölümleri kullanmak istiyorsanız, yalnızca COMMON ve PRIMPART ile etiketlenen parçaları izleyin, LVM içeren parçaları göz ardı edin. Mantıksal birimlerin yüklenmesi yalnızca COMMON ve LVM kullanır.

Bakir bir SD Kartı bölümleyip biçimlendireceğim, böylece onu tam istediğim gibi yapılandırabiliyorum. Önce ana önyükleme kaydını (MBR) hazırlıyorum, ardından SD Kartı bölümlere ayırıyorum ve biçimlendiriyorum. Bunu Raspberry Pi üzerinde yapacağım, böylece kurulum için kullanılacak ARM işlemcisi için yazılım çalıştırmada sorun yaşamıyoruz ve yeni kuruluma chroot yapıp gerekli şeyleri hazırlayabiliyoruz. Kurulum için RasPi'yi başlatmak için güncel bir Raspbian sürümü kullanmanız önerilir çünkü bazı yapılandırma dosyalarını kopyalıyoruz. Referans için sudo apt update && sudo apt full-upgrade && sudo reboot ile güncellenmiş Raspbian Buster Lite kullanıyorum. İnternet bağlantınızın zaten çalıştığını varsayıyorum.


ORTAK :
RasPi'yi başlatın ve oturum açtıktan sonra boş SD Kart üzerinde varsayılan bir msdos bölüm tablosu oluşturun. / dev / sda 'ya eklendiğini varsayıyorum:

  rpi ~ $ sudo -Esrpi ~ # parted / dev / sda mktable msdos  

Şimdi bir ana önyükleme kaydı yaptık (MBR), 512 baytlık ilk sektör. Ayrıca başlangıçta çok küçük bir önyükleme dizisi içerir. Şununla kontrol edebilirsiniz:

  rpi ~ # hd -v -n512 / dev / sda  

Bölümleme Sevdiğiniz boyutlarda SD Kart. 16 GB'lık bir kart kullanacağım:

  rpi ~ # parted / dev / sda mkpart birincil fat32 8192s 132MBrpi ~ # parted / dev / sda mkpart birincil 132MB% 100  

MBR’deki önyükleme dizisi Raspberry Pi tarafından kullanılmadığından şu şekilde sileceğiz:

  rpi ~ # dd if = / dev / zero of = / dev / sda bs = 1 count = 440 Conv = notrunc  

Bu gerçekten gerekli değil ama bunu yapmak için yapıyorum kaydetme tarafında olun çünkü orijinal Raspbian görüntüsünün MBR'si de bu dizide geçersiz kılınır. Sonra ilk bölümü fat32 ile biçimlendirip bir bağlama noktası oluşturuyoruz.

  rpi ~ # mkfs.vfat -vF 32 -n BOOT / dev / sda1rpi ~ # mkdir / mnt / p2  

PRIMPART :
İkinci bölümü ext4 ve takın:

  rpi ~ # mkfs.ext4 -vL rootfs / dev / sda2rpi ~ # mount / dev / sda2 / mnt / p2  

LVM :
İkinci bölümdeki mantıksal birimleri ayarlayın, ext4 ile biçimlendirin ve bağlayın:

  rpi ~ # parted / dev / sda set 2 lvm onrpi ~ # pvcreate / dev / sda2 # fiziksel volumerpi tanımla ~ # vgcreate rpi_vg / dev / sda2 # fiziksel volumerpi kullanarak birim grubu yarat ~ # lvcreate rpi_vg --name root_lv --size 8G # birim grubunda mantıksal birim oluştur # mantıksal birimi biçimlendir ve itrpi'yi bağla ~ # mkfs.ext4 -vL rootfs / dev / mapper / rpi_vg- root_lv
rpi ~ # mount / dev / mapper / rpi_vg-root_lv / mnt / p2  

ORTAK :
Önyükleme bölümünü bağlayın:

  rpi ~ # mkdir / mnt / p2 / bootrpi ~ # mount / dev / sda1 / mnt / p2 / boot /  

debootstrap kurulum programını kuruyoruz ve çalıştırıyoruz:

  rpi ~ # apt install debootstraprpi ~ # / usr / sbin / debootstrap --arch armhf buster / mnt / p2 http://raspbian.raspberrypi.org/raspbian

Şimdi yeni SD Kart üzerinde küçük ama eksiksiz bir Debian / Raspbian işletim sistemine sahibiz. Bazı temel kurulumları yapmalıyız. Varsayılan kod deposu kaynakları listesi dosyalarını kopyalayın:

  rpi ~ # cp /etc/apt/sources.list / mnt / p2 / etc / apt / rpi ~ # cp /etc/apt/sources.list.d/raspi.list /mnt/p2/etc/apt/sources.list.d/

PRIMPART :
Önce boot / cmdline.txt ile çekirdek önyükleme parametresini ayarlayın:

  rpi ~ # echo 'console = tty1 root = / dev / mmcblk0p2 rootfstype = ext4 lift = deadline fsck.repair = yes rootwait' > /mnt/p2/boot/cmdline.txt

Kullanabilirsiniz Benim gibi seri hata ayıklama konsolunu kullanıyorsanız console = tty1 yerine console = serial0,115200 . Öngörülebilir Ağ Arayüzü Adlarını beğenmezseniz, cmdline.txt dosyasına net.ifnames = 0 ekleyebilirsiniz. Yeni SD Kartı önyüklenebilir hale getirmek için / etc / fstab ayarlamamız gerekiyor:

  rpi ~ # cat > / mnt / p2 / etc / fstab <<EOF / dev / mmcblk0p1 / boot vfat varsayılanları 0 2 / dev / mmcblk0p2 / ext4 varsayılanları, noatime 0 1EOF  

LVM:
Önce boot / cmdline.txt ile çekirdek önyükleme parametresini ayarlayın:

  rpi ~ # echo 'console = tty1 root = / dev / mapper / rpi_vg-root_lv rootfstype = ext4 lift = deadline fsck.repair = yes rootwait' > / mnt /p2/boot/cmdline.txt

Kullanıyorsanız console = tty1 yerine console = serial0,115200 kullanabilirsiniz benim gibi seri hata ayıklama konsolu. Öngörülebilir Ağ Arayüzü Adlarını beğenmezseniz, cmdline.txt dosyasına net.ifnames = 0 ekleyebilirsiniz. Yeni SD Kartı önyüklenebilir hale getirmek için / etc / fstab ayarlamamız gerekiyor:

  rpi ~ # cat > / mnt / p2 / etc / fstab <<EOF / dev / mmcblk0p1 / boot vfat varsayılanları 0 2 / dev / mapper / rpi_vg-root_lv / ext4 varsayılanları, noatime 0 1EOF  

ORTAK :
Şimdi yeni küçük kurulumda chroot yapıyoruz ve çekirdeği ve bellenimi kuruyoruz:

  rpi - # mount --bind / dev / pts / mnt / p2 / dev / ptsrpi ~ # LANG = C.UTF-8 chroot / mnt / p2 / bin / bashroot @ raspberrypi: / # export TERM = linux  

apt bir imzalama anahtarı talep ettiğinden önce onu almalıyız:

  root @ raspberrypi: / # apt-key adv --keyserver hkp: // keyserver.ubuntu.com:80 --recv-keys 82B129927FA3303E  

Yeni kurulumdaki tek kullanıcı root, ancak şifresi belirlenmemiş, bu yüzden giriş yapamayacağız b'den sonra Yeni SD Kartın çıkarılması. İlk önce kök şifresini ayarlayın:

  root @ raspberrypi: / # passwd root  

Şimdi çekirdek ve bellenim:

  root @ raspberrypi: / # apt install dialogroot @ raspberrypi: / # apt updateroot @ raspberrypi: / # apt full-upgraderoot @ raspberrypi: / # echo raspi4 > / etc / hostname # veya RasPiroot @ raspberrypi'nizi adlandırmak istediğiniz ad: / # apt install raspberrypi-bootloader
root @ raspberrypi: / # apt install libraspberrypi-binroot @ raspberrypi: / # apt install raspberrypi-archive-keyring raspberrypi-sys-modsroot @ raspberrypi: / # apt install sudo # WiFi driverroot @ raspberrypi: / # apt install --no- install-önerir firmware-brcm80211 wireless-regdb crda  

Yalnızca benim gibi seri hata ayıklama konsolunu kullanmak istiyorsanız etkinleştirin:

  root @ raspberrypy: / # echo 'enable_uart = 1' >> /boot/config.txt

PRIMPART:
chroot'tan çıkın:

  root @ raspberrypi: / # exitrpi ~ #  

LVM:
lvm için, kök birime erişebilmek amacıyla sürücüyü erken aşama önyüklemede yüklememiz gerekir. Bu yüzden bir init ramdisk kullanmalı ve lvm sürücüsünü kurmalıyız:

  root @ raspberrypi: / # apt install initramfs-toolsroot @ raspberrypi: / # apt lvm2'yi yükle # Yalnızca listelenen modülleri yüklemek istiyorumkök @ raspberrypi: / # sed -i 's / ^ MODULES = çoğu / MODULES = list /' /etc/initramfs-tools/initramfs.conf  

/boot/config.txt 'de Raspberry Pi sürümüne bağlı olarak ramdisk'i yüklemeyi tanımlayın. Önce hangi modüllerin yüklenmesi gerektiğine bakın, örneğin:

  root @ Raspberrypi: / # ls /lib/modules4.19.97+ 4.19.97- v7 + 4.19.97-v7l + 4.19.97-v8 +  

Ardından, /boot/config.txt 'nin en üstüne şu satırları ekleyin:

  [pi3] initramfs initrd.img-4.19.97-v7 + followkernel [pi4] initramfs initrd.img-4.19.97-v7l + followkernel # arm_64bit = 1 # initramfs initrd. img-4.19.97-v8 + followkernel [tümü]  

Son olarak gerekli init ram disklerini oluşturun ve chroot'tan çıkın. Uyarıları göz ardı edebilirsiniz:

  root @ Raspberrypi: / # mkinitramfs -o /boot/initrd.img-4.19.97-v7+ 4.19.97- v7 +
root @ Raspberrypi: / # mkinitramfs -o /boot/initrd.img-4.19.97-v7l+ 4.19.97-v7l+root@raspberrypi: / # exitrpi ~ #  

Yapma ramdisk sürümünü güncellemeyi unutun ve kernel veya bellenimi güncellerseniz yeniden oluşturun, aksi takdirde artık önyükleme yapamazsınız. Ama sonra SD Kartı RasPi'nize bu şekilde takabilir, içine chroot yapabilir ve ramdisk'i yeniden oluşturabilirsiniz.


ORTAK:
Temizleyin ve kapatın:

  rpi ~ # rpi ~ # umount / mnt / p2 / bootrpi ~ # umount / mnt / p2 / dev / ptsrpi ~ # umount / mnt / p2rpi ~ # rmdir / mnt / p2rpi ~ # systemctl poweroff  

Şimdi SD Kartı değiştirin ve yeni kurulumu başlatın. Kök ile giriş yapın.

Kullanılabilir apt paket yöneticisiyle temiz, küçük ama çalışan bir Raspbian'ımız var. Kök bölüm için yalnızca 356 MB disk alanı tüketir. Bu, özel ortamlar oluşturmak veya adım adım nasıl çalıştığını öğrenmek için iyi bir başlangıç ​​noktasıdır. Belki de önce normal bir kullanıcı için bir hesap oluşturacak ve ağ bağlantısını yapılandıracaksınız, böylece yazılım paketlerini kurmak için uygun olanı kullanabilirsiniz.


referanslar:
( 1) Sıfırdan bir görüntü dosyası nasıl oluşturulur
(2) LVM ile çalışan bir sistemin kolay yedeklemeleri ve anlık görüntüleri

Çok faydalı bir referans. Teşekkürler. `MODULES = list` PITA'dır çünkü modül listesini açık bir şekilde yapılandırmanız gerekir - zayıf kalpliler için değil. Sonunda temiz Rasbian kurulumumda "mkinitramfs" çalıştırdım, ardından SD kök FS'yi LV kopyasına "sudo rsync -ax / / mnt / newroot" ile klonladım, "/ boot / cmdline.txt" yeni eşlenmiş kopya ve hey presto. Şimdi Z3 SSD'mde VG ve LV'lerim var.
@TerryE Olumlu oy almaya değer mi? ;-)
İki tane alabilirsin; -?


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...