Aussehen
Suche Einloggen
[c] [meta] [fefe] [erp]

/c/ – Pufferüberlauf


Antwort erstellen

(≤ 4)



[Zurück]

  • [l] Felix Sun, 11 May 2025 10:51:24 GMT Nr. 155969
    WEBM 540×360 0:53 4.2M
    Benutzt hier jemand Gentoo?
  • [l] Felix Sun, 11 May 2025 12:38:10 GMT Nr. 155985
    Ich benutze Arch nebenbei.
  • [l] Felix Sun, 11 May 2025 12:52:01 GMT Nr. 155988
    PNG 522×139 1.2k
    Oh wow, es lebt!

    >>155985
    >Ich benutze Arch nebenbei.
    Tut dieser Felix auch seit >10 Jahren, dachte deshalb eigentlich, er hätte inzwischen seinen Skill genug hochgelevelt für Gentoo. Aber dann hatte Felix gestern wieder das gleiche Problem wie damals beim ersten Versuch vor über 10 Jahren: Alles eingerichtet und dann wollte das System nicht starten.

    Felix hat den Fehler jetzt aber gefunden: Er hatte in der Kommandozeile des Kerns root=PARTUUID="xyz" stehen statt root=PARTUUID=xyz. In irgendeinem Beispiel stand es mit Anführungszeichen und Felix hatte das nicht weiter hinterfragt, aber anscheinend kommt der Kern damit nicht klar und dann gibt es irgendeine nichtssagende Fehlermeldung beim Stiefeln.

    Ein weiteres Problem, das Felix allerdings gestern schon erkannt und gelöst hatte, war, dass der Gentoo-Kern anscheinend immer noch nicht standardmäßig die Virtio-Module enthält. Das war damals vor über einem Jahrzehnt wohl auch das Problem. In jeder anderen kack Distribution funktionioniert das out-of-the-box, sogar mit verschiedenen BSDs. Gentoo und Fenster sind die einzigen Betriebssysteme, die Felix kennt, bei denen man die Treiber erst noch manuell installieren muss. Ist ja auch ein total ungewöhnlicher Anwendungsfall, dass man ein Betriebssystem in einer VM installieren möchte...
  • [l] Felix Sun, 11 May 2025 13:09:03 GMT Nr. 155993
    PNG 1920×1155 60.2k
    Ja geil. Was ist Btrfs eigentlich für ein Schrott? Sollte das nicht super resilient sein mit seinen Prüfsummen und dem ganzen Scheiß?
  • [l] Felix Sun, 11 May 2025 13:39:30 GMT Nr. 156005
    >>155993
    Es ist schönes Wetter draussen, geh etwas raus, fahr mit deinem Velo, geh spazieren, geniesse die Natur. Mit BTRFS und Gentoo kannst du dich auch morgen noch beschäftigen. :)
  • [l] Felix Sun, 11 May 2025 13:56:39 GMT Nr. 156010
    PNG 423×751 256.7k
    >>156005
    Felix hat brennende Augen (Allergie) und Floater. Schönes Wetter ist die Hölle.
  • [l] Felix Sun, 11 May 2025 15:41:38 GMT Nr. 156032
    >>156010
    Deslorotadin und co., Gasmaske / FFP2-Maske, Sonnenbrille. Wo ein Wille ist, da ist auch ein Weg! Und wenn du notfalls halt im kompletten Chem-Suit rumläufst, die Blicke aller hübschen Mädchen wären dir dann auf jeden Fall sicher!
  • [l] (Teil 1) Falls jemand das nachmachen möchte Felix Sun, 11 May 2025 19:27:34 GMT Nr. 156044
    Virtuelles Festplattenabbild erzeugen (man müsste nicht unbedingt qemu-img nehmen)
    qemu-img create -f raw gentoo.raw 50G
    


    Partitionstabelle anlegen
    fdisk gentoo.raw
    # Welcome to fdisk (util-linux 2.41).
    # Changes will remain in memory only, until you decide to write them.
    # Be careful before using the write command.
    #
    # Device does not contain a recognized partition table.
    # Created a new DOS (MBR) disklabel with disk identifier 0x08cac1c1.
    #
    # Command (m for help):
    g
    # Created a new GPT disklabel (GUID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).
    #
    # Command (m for help):
    n
    # Partition number (1-128, default 1):
    # First sector (2048-104857566, default 2048):
    # Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-104857566, default 104855551):
    +1G
    #
    # Created a new partition 1 of type 'Linux filesystem' and of size 1 GiB.
    #
    # Command (m for help):
    t
    # Selected partition 1
    # Partition type or alias (type L to list all):
    1
    # Changed type of partition 'Linux filesystem' to 'EFI System'.
    # Command (m for help):
    n
    # Partition number (2-128, default 2):
    # First sector (2099200-104857566, default 2099200):
    # Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-104857566, default 104855551):
    #
    # Created a new partition 2 of type 'Linux filesystem' and of size 49 GiB.
    #
    # Command (m for help):
    t
    # Partition number (1,2, default 2):
    2
    # Partition type or alias (type L to list all):
    23
    #
    # Changed type of partition 'Linux filesystem' to 'Linux root (x86-64)'.
    #
    # Command (m for help): p
    # Disk gentoo.raw: 50 GiB, 53687091200 bytes, 104857600 sectors
    # Units: sectors of 1 * 512 = 512 bytes
    # Sector size (logical/physical): 512 bytes / 512 bytes
    # I/O size (minimum/optimal): 512 bytes / 512 bytes
    # Disklabel type: gpt
    # Disk identifier: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    #
    # Device        Start       End   Sectors Size Type
    # gentoo.raw1    2048   2099199   2097152   1G EFI System
    # gentoo.raw2 2099200 104855551 102756352  49G Linux root (x86-64)
    #
    # Command (m for help):
    w
    # The partition table has been altered.
    


    Dateisysteme anlegen
    losetup --partscan /dev/loop0 gentoo.raw
    mkfs.vfat -F32 /dev/loop0p1
    mkfs.btrfs /dev/loop0p2
    


    Besteigen Mounten
    mkdir /mnt/gentoo
    mount /dev/loop0p2 /mnt/gentoo
    mkdir /mnt/gentoo/efi
    mount /dev/loop0p1 /mnt/gentoo/efi
    


    Schnellpinguin-Abbild als Teerdatei laden und entpacken
    wget https://distfiles.gentoo.org/releases/amd64/autobuilds/20250504T164008Z/stage3-amd64-nomultilib-systemd-20250504T164008Z.tar.xz
    tar xpvf stage3-amd64-nomultilib-systemd-20250504T164008Z.tar.xz --xattrs-include='*,*' --numeric-owner -C /mnt/gentoo
    


    Jetzt foll nei-chrooten:
    cp --dereference /etc/resolv.conf /mnt/gentoo/etc/
    mount --types proc /proc /mnt/gentoo/proc
    mount --rbind /sys /mnt/gentoo/sys
    mount --make-rslave /mnt/gentoo/sys
    mount --rbind /dev /mnt/gentoo/dev
    mount --make-rslave /mnt/gentoo/dev
    mount --bind /run /mnt/gentoo/run
    mount --make-slave /mnt/gentoo/run
    chroot /mnt/gentoo
    

  • [l] (Teil 2) Falls jemand das nachmachen möchte Felix Sun, 11 May 2025 19:28:03 GMT Nr. 156045
    Ab jetzt im chroot weitermachen:
    emerge-webrsync
    


    USE-Flags nach eurem Belieben editieren:
    nano /etc/portage/make.conf
    


    Felix hat es mal hiermit versucht, aber da das für Felix noch Neuland ist, nehmt es nicht als Gospel, ist auch eher experimentell:
    ...
    
    FEATURES="${FEATURES} getbinpkg binpkg-request-signature"
    
    USE="minimal boot dracut dist-kernel btrfs -acl -pop3 -smtp -imap -sendmail -http3 -quic -curl_quic_openssl -introspection -pcre16 -pcre32 amd64 -bzip2 -cet crypt -gdbm -iconv ipv6 -libtirpc ncurses -nls -openmp pam pcre readline seccomp ssl static static-libs systemd systemd-boot -test-rust udev unicode xattr gzip zip zlib zstd -dbus"
    
    ABI_X86="64"
    ADA_TARGET="gcc_14"
    APACHE2_MODULES=""
    CALLIGRA_FEATURES=""
    COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog"
    CPU_FLAGS_X86="mmx mmxext sse sse2"
    ELIBC="glibc"
    GPSD_PROTOCOLS=""
    GUILE_SINGLE_TARGET="3-0"
    GUILE_TARGETS="3-0"
    INPUT_DEVICES="libinput"
    KERNEL="linux"
    LCD_DEVICES=""
    LUA_SINGLE_TARGET="lua5-1"
    LUA_TARGETS="lua5-1"
    OFFICE_IMPLEMENTATION=""
    PHP_TARGETS="php8-2"
    POSTGRES_TARGETS="postgres17"
    PYTHON_SINGLE_TARGET="python3_13"
    PYTHON_TARGETS="python3_13"
    RUBY_TARGETS="ruby32"
    VIDEO_CARDS="virgl"
    XTABLES_ADDONS=""
    
    ACCEPT_LICENSE="@FREE @BINARY-REDISTRIBUTABLE"
    
    ...
    


    Man könnte sich natürlich auch vorher einen anderen Editor installieren, falls man mit nano nicht klarkommt, aber dann muss man halt eventuell hinterher noch mal kompilieren.
    Update: Stellt sich raus, das ist keine gute Idee, bevor man den Kernel installiert hat, weil sich sonst irgendwas nicht kompilieren lässt (nicht näher untersucht).

    Felix hatte die make.conf noch von einem vorherigen, gescheiterten Versuch übrig und hat sie einfach ins Chroot reinkopiert.

    Man sollte auch noch wenigstens eine locale installieren, wenn man nicht ständig Warnungen erhalten möchte:
    nano /etc/locale.gen
    localegen
    

  • [l] (Teil 3) Falls jemand das nachmachen möchte Felix Sun, 11 May 2025 19:28:27 GMT Nr. 156046
    Firmware installieren (dazu ist es wichtig, vorher ACCEPT_LICENSE in der make.conf angepasst zu haben)
    emerge sys-kernel/linux-firmware
    


    Ob man das für eine VM wirklich braucht, weiß Felix nicht, aber er hat keine Lust, später wieder unangenehme Überraschungen zu erleben.

    Jetzt kompiliert der erst mal einen Haufen Zeug... das kann eine Weile dauern.

    emerge sys-apps/systemd sys-kernel/installkernel
    


    Wenn das abgeschlossen ist, folgt die Vorbereitung für systemd-boot

    emerge sys-apps/systemd sys-kernel/installkernel
    


    /etc/fstab muss auch noch erzeugt werden. Weil Felix keinen Bock hat, das von Hand zu tun, benutzt er dazu genfstab

    emerge genfstab
    genfstab -t PARTUUID / > /etc/fstab
    


    Jetzt kommt der Teil, den Felix beim ersten Versuch verkackt hatte, nämlich das Anpassen der Kernel-Zeile:

    cat /etc/fstab
    # # /dev/loop0p2 UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    # PARTUUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy	/         	btrfs     	rw,relatime,ssd,discard=async,space_cache=v2,subvol=/	0 0
    #
    # # /dev/loop0p1 UUID=xxxx-xxxx
    # PARTUUID=zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz	/efi      	vfat      	rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro	0 2
    
    echo 'root=PARTUUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy' > /etc/kernel/cmdline
    


    Und nun das eigentliche Installieren des Kernels:
    emerge sys-kernel/gentoo-kernel-bin
    


    Der Bootloader wird dabei automatisch konfiguriert. Wenn die USE-Flags systemd und systemd-boot enthalten, dann sollte automatisch systemd-boot gewählt werden. Es kann nicht schaden, anschließend bootctl aufzurufen, um zu prüfen, dass auch alles stimmt:

    bootctl
    # System:
    # Not booted with EFI
    #
    # Available Boot Loaders on ESP:
    #           ESP: /efi (/dev/disk/by-partuuid/zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz)
    #          File: ├─/EFI/systemd/systemd-bootx64.efi (systemd-boot 256.10)
    #                └─/EFI/BOOT/BOOTX64.EFI (systemd-boot 256.10)
    #
    # Boot Loader Entries:
    #         $BOOT: /efi (/dev/disk/by-partuuid/zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz)
    #         token: gentoo
    #
    # Default Boot Loader Entry:
    #          type: Boot Loader Specification Type #1 (.conf)
    #         title: Gentoo Linux
    #            id: gentoo-6.12.25-gentoo-dist.conf
    #        source: /efi//loader/entries/gentoo-6.12.25-gentoo-dist.conf
    #      sort-key: gentoo
    #       version: 6.12.25-gentoo-dist
    #         linux: /efi//gentoo/6.12.25-gentoo-dist/linux
    #        initrd: /efi//gentoo/6.12.25-gentoo-dist/initrd
    #       options: root=PARTUUID=yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy
    


  • [l] (Teil 4) Falls jemand das nachmachen möchte Felix Sun, 11 May 2025 19:28:59 GMT Nr. 156047
    An dieser Stelle wäre es eine gute Idee, entweder ein root-Passwort zu setzen, oder einen Benutzer anzulegen, damit ihr nicht wie Felix dumm aus der Wäsche schaut, wenn ihr nach erfolgreichem Stiefeln euch nicht einloggen könnt.

    emerge sudo
    groupadd sudo
    visudo
    


    Folgende Zeile auskommentieren:
    # %sudo ALL=(ALL) ALL
    


    Benutzer anlegen:
    useradd -G sudo -d felix
    passwd felix
    


    Hostname setzen ist auch keine schlechte Idee:
    echo gentoo > /etc/hostname
    


    Jetzt sollte eigentlich alles fertig sein, wenn Felix nichts vergessen hat. Raus aus der chroot:
    exit
    


    Und jetzt, ganz wichtig, das Dateisystem unmounten, damit ihr euch nicht versehentlich euer Btrfs zerfickt:

    umount /mnt/gentoo/efi
    umount /mnt/gentoo
    


    umount: /mnt/gentoo: target is busy.
    


    Großartig! Warum jetzt diese Scheiße? Keine Ahnung. Linux halt.

    (Vermutlich liegt es an den bind-mounts vong chroot her, aber die lassen sich ebenfalls nicht unmounten weil busy)

    umount --recursive /mnt/gentoo
    


    Ok. Das funktioniert. Wäre wahrscheinlich auch gleich einfacher gewesen. Sollte Felix sich mal merken.
  • [l] (Teil 5) Falls jemand das nachmachen möchte Felix Sun, 11 May 2025 19:29:43 GMT Nr. 156048
    PNG 511×174 1.3k
    Jetzt sollte dem Starten der VM in QEMU eigentlich nichts mehr im Wege stehen.

    Vorher noch den komischen EFI-Pseudo-Flashspeicher rüberkopieren:
    cp /usr/share/ovmf/x64/OVMF_VARS.4m.fd .
    



    So, jetzt aber, der Moment der Wahrheit:
    qemu-system-x86_64 -runas "nobody" -enable-kvm -M q35 -m 1G -cpu host \
    -vga virtio \
    -monitor stdio -serial pty \
    -global driver=cfi.pflash01,property=secure,value=on \
    -drive if=pflash,format=raw,readonly=on,file=/usr/share/ovmf/x64/OVMF_CODE.4m.fd \
    -drive if=pflash,format=raw,file=./OVMF_VARS.4m.fd \
    -smp 1,sockets=1,cores=1,threads=1 \
    -boot menu=on \
    -device virtio-rng-pci,max-bytes=2,period=1000 \
    -drive file=gentoo.raw,id=disk,format=raw,discard=on,cache=none
    


    Bild relatiert.

    Soweit sah eigentlich alles ganz gut aus.
  • [l] (Teil 6) Falls jemand das nachmachen möchte Felix Sun, 11 May 2025 19:31:46 GMT Nr. 156049
    PNG 1920×1155 43.0k
    So und jetzt wird es wieder kacke: Felix merkt, dass er, entgegen seiner Anleitung, vergessen hat, ein Passwort für den Nutzer-Account zu setzen. Ok, Also VM beenden, Dateisystem wieder besteigen, chroot rein, passwd, unmounten.

    VM neustarten. Und jetzt? Btrfs wieder karpott xDDDDDD

    Keine Ahnung, was Felix diesmal falsch gemacht hat.

    Ach leckt Felix doch am Arsch.
  • [l] Felix Mon, 12 May 2025 08:37:30 GMT Nr. 156066
    >>156049
    Linux zerstört dein Leben! Geh unter Menschen, unternimm was, da wirst du mehr Freude haben als an Gentoo!
  • [l] Felix Mon, 12 May 2025 09:55:36 GMT Nr. 156082
    >>156066
    Menschen zerstören dein Leben mehr als es Gentoo jemals könnte.
  • [l] Felix Mon, 12 May 2025 10:40:23 GMT Nr. 156090
    >>156082
    Einfach nicht im Armenviertel zwischen die ganzen Asylanten gehen, dann passt das schon!
  • [l] Felix Mon, 12 May 2025 13:04:18 GMT Nr. 156110
    >>156093
    Naja, gemäss Manual haben auch Menschen USE-Flags. Man muss halt nur wissen, wo es steht.
  • [l] Felix Mon, 12 May 2025 18:16:37 GMT Nr. 156142
    WEBM 208×160 2:21 4.3M
    Es kompiliert... ich will nicht, dass es kompiliert. Wenn es kompiliert, dann dauert es immer so lange!!!!!!!!
  • [l] Felix Mon, 12 May 2025 18:37:41 GMT Nr. 156144
    >>156142
    Gibts das in noch kleiner?!
  • [l] Felix Tue, 13 May 2025 08:35:51 GMT Nr. 156170
    >>156160
    Was weisst du eigentlich?!
  • [l] Felix Tue, 13 May 2025 09:40:25 GMT Nr. 156178
    >>156170
    Vermutlich kennst du die Antwort. Irgendsoein Philosoph hat da mal was gesagt. Weiß aber nicht, wer.
  • [l] Felix Tue, 13 May 2025 10:47:15 GMT Nr. 156187
    WEBM 640×360 2:07 9.4M
    Sachdienlicher Hinweis: Falls ihr euch eine Menge Kopfschmerzen ersparen wollt, packt niemals systemd und systemd-utils gleichzeitig in eure USE-Flags, weil letzteres ein Subset von ersterem darstellt und ihr mit extrem kryptischer Fehlermeldung belohnt werdet beim Versuch, Pakete zu installieren [0]

    [0] https://forums.gentoo.org/viewtopic-p-8799476.html
  • [l] Felix Tue, 13 May 2025 10:51:46 GMT Nr. 156188
    PNG 513×155 1.8k
    Seht ihr: Gentoo installieren ist gans ein Fach!

    Wehe, Btrfs ist nach dem nächsten Reboot wieder zerfickt
  • [l] Felix Tue, 13 May 2025 11:30:48 GMT Nr. 156200
    PNG 728×165 5.7k
    Hmm, also so richtig minimalistisch ist das jetzt nicht. Und statisch gelinkt ist es auch nicht trotz static USE-Flag.

    Vielleicht wird es doch eher Zeit für Alpine oder Linux from Scratch?
  • [l] Felix Tue, 13 May 2025 12:41:57 GMT Nr. 156207
    TXT 45.3k
    Alter, warum ist da so viel Schrott vorinstallert? Perl? Wie inzu minimalistisches Gentoo?


[Zurück]
[c] [meta] [fefe] [erp]