PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : gentoo hardened auf server4you dedicated root inst


jazzrul
13.09.2013, 21:28
Moin Gemeinde,

hat jemand evtl. Erfahrung darin, eine eigene Linux-Distribution auf nem server4you root (kein vhost) zu installieren?
Konkret versuche ich im Moment dem root ein aktuelles gentoo-hardened beizubringen. Ich bin nach dieser Anleitung:
HowTo Gentoo Remote Installation (http://www.rootservice.org/howtos/gentoo/remote_install.html)
vorgegangen, habe natürlich die Partitionsgrößen angepasst und verwende nur für das rootfilesystem / ein Raid1.
Leider bootet die Kiste nicht, oder ist nach dem reboot nicht per ping erreichbar (keine Ahnung, in welchem Zustand sich das Ding dann befindet, da es leider keine Bootmessages auf die Weboberfläche ausspuckt und auch keine vom recovery-mode aus erreichbaren logs schreibt). Damit bringt mir weder ein dmesg, noch ein /var/log/messages Erhellung (im neu installierten und hinein ge-chrooteten System).
Aus dem recovery mode heraus, in den ich mich per ssh auf ne konsole einloggen kann, sind die Festplatten und Daten darauf problemlos erreichbar.
Nun meine Frage: Wo, bzw. Wie krieg ich mehr Infos bezgl. des (fehlgeschlagenen) Bootvorgangs. Oder evtl. kennt jemand das Problem und zeigt mir, an welchem winzigen Schräubchen ich, speziell für die Büchsen bei s4u, drehen muss, damit da ein kernel bootet, der auf der fraglichen Kiste kompiliert (was übrigens über 4Std. gedauert hat, ohne die zusätzlichen Systemtools) und nach der oben angegebenen Anleitung eingerichtet wurde.

Danke euch schonmal fürs Durchlesen und im Graue-Masse-Archiv suchen

SP4C3
13.09.2013, 22:24
4h fürn kernel? dafür brauch ich aufm laptop höchstens 15min... ;)

Was für ne Kernelconfig?
Welcher Bootloader?
Welche Partition also BOotpartition?
Welche Dateisysteme fürn Bootloader??

jazzrul
13.09.2013, 22:57
4h fürn kernel? dafür brauch ich aufm laptop höchstens 15min... ;)

wow, so'n notebook hätt'ich auch gerne :D
lokal in ner VM (VirtualBox auf nem i5 mit 8GB Ram hat es über 2 Std. gebraucht, lief dann aber auch.

Was für ne Kernelconfig?

hab das mal angehängt. siehe unten

Welcher Bootloader?

Grub.
inhalt der /boot/grub/menu.lst:
---------------------
default 0
timeout 5
title=Gentoo Linux
root (hd0,0)
kernel /boot/kernel root=/dev/ram0 init=/sbin/init real_root=/dev/md1 rootfstype=ext3 acpi=off
initrd /boot/initramfs
---------------------

Welche Partition also BOotpartition?

2 Platten a 2 TB, identisch partitioniert:

sd[ab]1: 500 MB /boot ext2
sd[ab]2: 16 GB --- swap
sd[ab]3: 80 GB / ext3 Raid1
sd[ab]4: 1.9 TB nicht gemounted, soll später ein LVM werden

gebootet wird von sda1. Diese habe ich als backup mit "dd if=sda1 of=sdb1" gespiegelt
Sytemroot / ist /dev/md1 , das sich aus sda3 und sdb3 als Raid1 zusammensetzt (wobei ich mir nicht sicher bin, ob das beim booten auch erkannt wird)


Welche Dateisysteme fürn Bootloader??
siehe oben

SP4C3
14.09.2013, 00:08
gibt irgendwo nen wiki eintrag wegen booten von softwarraid.
damit das klappt brauchst du auf jedenfall ne initrd.
hast du genkernel benutzt um eine zu bauen? damit kannst du nämlich eine bauen, welche mdadm enthällt um die raids zu erkennen..

kernelconfig schau ich mir jetzt nicht mehr an, morgen evtl.. schau wie gesagt mal wegen genkernel und mdraid...

jazzrul
17.09.2013, 23:14
gibt irgendwo nen wiki eintrag wegen booten von softwarraid.
damit das klappt brauchst du auf jedenfall ne initrd.
initrd ist vorhanden und auch im grub bekannt (initramfs)

hast du genkernel benutzt um eine zu bauen? damit kannst du nämlich eine bauen, welche mdadm enthällt um die raids zu erkennen..
DAS ist doch mal 'n echtes Stichwort. Hatte nen Schreibfehler in der mdadm.conf und den erst nach genkernel korrigiert. Muss ich gleich probieren, den nochmal laufen lassen ...

kernelconfig schau ich mir jetzt nicht mehr an, morgen evtl.. schau wie gesagt mal wegen genkernel und mdraid...

Vielen Dank für den Tip.



--======================================--
--== Beitrag erstellt: 00:14 um 01:33 ==--
--== geantwortet 18.09.2013 auf Beitrag vom 14.09.2013 ==--
--== automatische Beitragszusammenführung ==--
--======================================--


jazzrul schrieb nach 94 Stunden, 40 Minuten und 24 Sekunden:

Lösung:

1. beim einrichten des kernels mit make menuconfig darauf achten, dass Raid1 Support angewählt ist. (Wichtig: auch Punkt 6 in dieser Lösung lesen)

2. ich musste die erzeugte .config noch editieren. Die Zeile mit CONFIG_DEVTMPFS auf CONFIG_DEVTMPFS=y setzen.

3. um alle CPU Kerne beim kompilieren zu nutzen den Parameter "j" gefolgt von der Anzahl cores beim "make" angebenmake -j84. nach dem kopieren des neuen kernels nach /boot, einem beherzten make modules_install muss die initramfs mit genkernel --install --no-ramdisk-modules --mdadm initramfs gebaut werden. Wichtig ist hierbei das "--mdadm" für den Software Raid Support. Wenn der gegeben ist, können alle anderen Sachen anschließend von der Disk gelesen werden. (Trotzdem kann man noch einige Dinge wie z.B. HW-Random-Device Treiber im kernel und in der initramdisk verbleiben)

5. in der /boot/grub/grub.conf die notwendigen kernel Startparameter hinzufügen. Vor allem "domdadm" fürs raid:

root (hd0,0)
kernel /boot/kernel root=/dev/ram0 init=/sbin/init real_root=/dev/md1 domdadm rootfstype=ext3 acpi=off
initrd /boot/initramfs
wobei hier das root-fs auf dem raid /dev/md1 liegt und das raid mit dem boot-kernel auf /dev/md0.
(ob die s4u Büchsen wirklich mit acpi funktionieren, wage ich zu bezweifeln. deswegen ist es off)

6. Das Netzwerk war in meinem Fall etwas biestig. Verbaut ist ne Broadcom BCM57780. Die erfordert einen kleinen schmutzigen Trick, um von den Treibern korrekt angesprochen zu werden. Und zwar muss der übergeordnete Broadcom-Treiber als "built in <*>" und der zu diesem Modell gehörende tg3-Treiber als "module <M>" kompiliert werden.
Anschließend tg3 zu /etc/conf.d/modules hinzufügen.

7. Gemeinerweise ist der kernel, genauer udev der Meinung, das device eth0 in enp2s0 umbenennen zu müssen, wodurch dann alle Dienste, die ein laufendes Netzwerk brauchen (wie z.B. sshd) nicht starten und die Kiste von aussen nur per Notfallkonsole zu erreichen ist. Also muss man udev vorbeten, was es verbockt.
/etc/udev/rules.d/10-network.rules:
SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="00:12:34:45:67:89", NAME="eth0"und
/etc/udev/rules.d/70-persistent-net.rules:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:12:34:45:67:89", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
in ATTR{address}=="..." steht die MAC Adresse der verbauten NIC, die man u.a. mit ifconfig rauskriegt.

Ich hoffe, das hilft dann noch wem anderes als mir weiter.

Orientiert habe ich mich an :
HowTo Gentoo Remote Installation (http://www.rootservice.org/howtos/gentoo/remote_install.html)
http://www.gentoo.de/doc/de/gentoo-x86+raid+lvm2-quickinstall.xml
http://www.gentoo.org/doc/en/handbook/handbook-x86.xml
Network Configuration - ArchWiki (https://wiki.archlinux.org/index.php/Dhcpcd#Broadcom_BCM57780)

SP4C3
18.09.2013, 07:15
Hehe, schön das es noch geklappt hat und du die Lösung hier teilst. Bzw. Genau das meinte ich mit genkernel initrd und so....

Das mit dem netzwerkgerät benennen ist bzw. Ganz praktisch was udev da macht. Sofern man vorher weis was rauskommt....

bastelfreak
18.09.2013, 09:13
Der NIC Name enp2s0 ist gewollt und schon richtig. Sofern du einen Symlink von /etc/init.d/net.lo nach /etc/init.d/net.enp2s0 anlegst, es mit 'rc-update add net.enp2s0 default' in den autostart schiebst und das Device entsprechend unter /etc/conf.d/net konfigurierst ist alles super. Wenn jetzt ein udev Update kommt ist es wahrscheinlich das deine manuell angepasste Regel wieder ersetzt wird. Meine Erfahrung bezüglich des -j Parameters, hier hat sich Anzahl der CPU Kerne*2 + 1 bewährt.

Aktuell nutze ich keine Server bei S4U, aber es würde mich doch stark wundern wenn deren Server so schlecht sind das dort kein ACPI funktioniert. Könntest du dies vielleicht in einer ruhigen Minute testen?