Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2019-11-30 19:39:54

  andrewdre - Użytkownik

andrewdre
Użytkownik
Zarejestrowany: 2014-12-19

Arch Linux- Initramfs- problem z monotwaniem partycji ext4

Witam!
korzystając z tego: https://wiki.gentoo.org/wiki/Custom_Initramfs tutoriala próbuje utworzyć Initramfs. Zamiast korzystać z busyboxa skopiowałem  "bash", "sh", "mount" i "umount" do katalogu "bin" i umieściłem potrzebne biblioteki w folderze "lib". Pojawia się jednak problem z zamontowaniem partycji "/dev/sda1"

Kod:

mount: /mnt/root: unknown filesystem type 'ext4'
Kernel panic - not syncing: Attempted to kill init! exitcode=0x00000000

plik init:

Kod:

#!/bin/sh

/bin/mount -t proc none /proc
/bin/mount -t sysfs none /sys

/bin/mount -t ext4 -o ro /dev/sda1 /mnt/root

/bin/umount /proc
/bin/umount /sys

exec switch_root /mnt/root /sbin/init

grub.cfg

Kod:

linux /boot/vmlinuz-linux root=/dev/ram0
initrd /boot/custom-initramfs.cpio.gz

Ostatnio edytowany przez andrewdre (2019-11-30 20:42:47)

Offline

 

#2  2019-11-30 20:45:08

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/urandom
Zarejestrowany: 2008-01-07

Re: Arch Linux- Initramfs- problem z monotwaniem partycji ext4

Pierwsze Primo:
Wkompiluj systemy plików na stale w jajko, zaznaczasz, żeby były w kernelu a nie jako ładowalne.

Drugie Primo:
Initramfs CI się przyda do szyfrowanej partycji, w przeciwnym razie lepiej, żeby jajo do podniesienia systemu nie potrzebowało niczego.

Trzecie Primo:
Teraz się do initrams używa Dracuta od jakiegoś czasu.
Wygodniejsze to jest od starej gimnastyki z initrafs.

https://wiki.gentoo.org/wiki/Initramfs/Guide#Using_dracut
https://wiki.gentoo.org/wiki/Dracut

Pozdro

PS:
Primo. xD

Ostatnio edytowany przez Jacekalex (2019-11-30 21:12:06)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#3  2019-12-03 04:42:17

  andrewdre - Użytkownik

andrewdre
Użytkownik
Zarejestrowany: 2014-12-19

Re: Arch Linux- Initramfs- problem z monotwaniem partycji ext4

Dzięki za odpowiedź i filmik :) Przepraszam że teraz dopiero odpisuje. Spróbowałem z busyboxem i nie ma już problemu z ext4. Pojawił się niestety inny:

Kod:

mount: mounting /dev/sda1 on /mnt/root failed: No such  file or directory.

Offline

 

#4  2019-12-03 06:44:50

  ilin - Palacz

ilin
Palacz
Skąd: PRLu
Zarejestrowany: 2006-05-03

Re: Arch Linux- Initramfs- problem z monotwaniem partycji ext4

Masz taki katalog  /mnt/root  ?


Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Polski portal Debiana

Offline

 

#5  2019-12-03 17:11:06

  andrewdre - Użytkownik

andrewdre
Użytkownik
Zarejestrowany: 2014-12-19

Re: Arch Linux- Initramfs- problem z monotwaniem partycji ext4

Tak. Dodałem polecenie lsblk do pliku init i lista dysków jest pusta.

Ostatnio edytowany przez andrewdre (2019-12-03 18:11:08)

Offline

 

#6  2019-12-04 14:52:24

  skullman - Użytkownik

skullman
Użytkownik
Zarejestrowany: 2010-04-08

Re: Arch Linux- Initramfs- problem z monotwaniem partycji ext4

To pokaż wynik

Kod:

ls /mnt

Offline

 

#7  2019-12-04 16:22:55

  andrewdre - Użytkownik

andrewdre
Użytkownik
Zarejestrowany: 2014-12-19

Re: Arch Linux- Initramfs- problem z monotwaniem partycji ext4

Kod:

root

Offline

 

#8  2019-12-05 20:57:22

  andrewdre - Użytkownik

andrewdre
Użytkownik
Zarejestrowany: 2014-12-19

Re: Arch Linux- Initramfs- problem z monotwaniem partycji ext4

Udało się ogarnąć, ale nie tak jak chciałem. Skorzystałem z domyślnego initramfs:

Kod:

gunzip -c /boot/initramfs-linux.img | cpio -id

Strukturę plików i katalogów zostawiłem.
Zmieniony przeze mnie init wygląda tak:

Kod:

#!/usr/bin/ash
run_hookfunctions() {
    local hook fn=$1 desc=$2

    shift 2
    for hook in "$@"; do
        [ -x "/hooks/$hook" ] || continue

        unset "$fn"
        . "/hooks/$hook"
        type "$fn" >/dev/null || continue
        "$fn"
    done
}
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devtmpfs none /dev

run_hookfunctions 'run_earlyhook' 'early hook' 'udev'
run_hookfunctions 'run_hook' 'hook' 'udev'

mount -t ext4 -o ro /dev/sda1 /mnt/root

run_hookfunctions 'run_latehook' 'late hook' ''
run_hookfunctions 'run_cleanuphook' 'cleanup hook' 'udev'

umount /proc
umount /sys
umount /dev

exec switch_root /mnt/root /sbin/init

a "/hooks/udev" tak:

Kod:

#!/usr/bin/ash

run_earlyhook() {
    kmod static-nodes --format=tmpfiles --output=/run/tmpfiles.d/kmod.conf
    systemd-tmpfiles --prefix=/dev --create --boot
    /usr/lib/systemd/systemd-udevd --daemon --resolve-names=never
    udevd_running=1
}

run_hook() {
    msg ":: Triggering uevents..."
    udevadm trigger --action=add --type=subsystems
    udevadm trigger --action=add --type=devices
    udevadm settle
}

run_cleanuphook() {
    udevadm control --exit
    udevadm info --cleanup-db
}

# vim: set ft=sh ts=4 sw=4 et:

To rozwiązanie działa, ale problem polega na tym, że po aktualizacji kernela muszę ponownie rozpakować "initramfs-linux.img" i podmieniać pliki. Proszę o pomoc z wersją z busyboxem.

Ostatnio edytowany przez andrewdre (2019-12-06 00:08:25)

Offline

 

#9  2019-12-06 07:52:52

  zbig - Użytkownik

zbig
Użytkownik
Zarejestrowany: 2010-02-25

Re: Arch Linux- Initramfs- problem z monotwaniem partycji ext4

Do tworzenia initramfs w Archlinux używany  jest autorski program mkinitcipo. Skonfiguruj go - sekcja MODULES.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)