Hallo,
ich bin gerade etwas blöd.
Es gibt mehrere Boot-Partitionen (/dev/sda1 (Platte), /dev/sdb1 (USB-Stick). Ich möchte jetzt, wenn das System gestartet ist, feststellen, von welchem der Geräte gebootet wurde. Die Geräte haben identische Inhalte.
"Weiß" der Kernel noch, welches das Boot-Device war, also von wo der GRUB initrd und vmlinuz geholt hatte.
Danke.
Viele Grüße Heiko
Hallo,
Es gibt mehrere Boot-Partitionen (/dev/sda1 (Platte), /dev/sdb1 (USB-Stick). Ich möchte jetzt, wenn das System gestartet ist, feststellen, von welchem der Geräte gebootet wurde. Die Geräte haben identische Inhalte.
$ mount | grep " / " | cut -d" " -f1
;-)
oder auch /proc/cmdline .
Wo der Grub den Kernel hergeholt hat weiß dieser afaik nicht, da der Grub ja den Kernel lädt, selbst abtritt und den Kernel starten lässt, wodurch der Kernel damit, wie er in den RAM kommt, gar nichts zu tun hat und über seine Herkunft nur spekulieren kann (intelligent design? }:-> ).
Viele Grüße Fabian
Hallo Fabian,
super schnelle Antwort .. aber...
Fabian Hänsel fabtagon@gmx.de (So 22 Mär 2009 22:27:56 CET):
Hallo,
Es gibt mehrere Boot-Partitionen (/dev/sda1 (Platte), /dev/sdb1 (USB-Stick). Ich möchte jetzt, wenn das System gestartet ist, feststellen, von welchem der Geräte gebootet wurde. Die Geräte haben identische Inhalte.
$ mount | grep " / " | cut -d" " -f1
... das hilft nicht wirklich weiter. Die Frage war nicht nach dem "root"-Filesystem, sondern nach dem "boot"-Filesystem
ROOT: /dev/mapper/jumper-root on / type ext3 (rw,relatime,errors=remount-ro)
BOOT: /dev/sda1 on /boot type ext3 (rw)
Wobei das letztere gelogen ist, denn das wurde dort nur gemounted, weil's in der fstab so drin steht. Wirklich gebootet hat der Kasten vom USB-Stick (/dev/sdb1).
oder auch /proc/cmdline .
root=/dev/mapper/jumper-root ro quiet
Auch das ist nur das ROOT-FS. Und außerdem müsste dort nicht mal was stehen, denn der Kernel könnte ja auch mittels rdev(8) erfahren haben, woher gebootet wird.
Wo der Grub den Kernel hergeholt hat weiß dieser afaik nicht, da der Grub ja den Kernel lädt, selbst abtritt und den Kernel starten lässt, wodurch der Kernel damit, wie er in den RAM kommt, gar nichts zu tun hat und über seine Herkunft nur spekulieren kann
Ja eben -- genau danach suche ich - ob der GRUB irgendwo dem Kernel hinterläßt, welches Gerät (sicher irgend so eine BIOS 0x8? Zahl) er genutzt hatte, um vmlinuz und initrd (können ja durchaus auch verschiedene sein) zu laden.
On Sunday 22 March 2009 10:57:29 Heiko Schlittermann wrote:
Hallo,
ich bin gerade etwas blöd.
Es gibt mehrere Boot-Partitionen (/dev/sda1 (Platte), /dev/sdb1 (USB-Stick). Ich möchte jetzt, wenn das System gestartet ist, feststellen, von welchem der Geräte gebootet wurde. Die Geräte haben identische Inhalte.
"Weiß" der Kernel noch, welches das Boot-Device war, also von wo der GRUB initrd und vmlinuz geholt hatte.
Danke.
Viele Grüße Heiko
dmesg: ... [ 0.000000] Kernel command line: root=/dev/hda1 ro ... Reicht das ?
Bernhard
Bernhard Schiffner bernhard@schiffner-limbach.de (Mo 23 Mär 2009 08:30:34 CET):
On Sunday 22 March 2009 10:57:29 Heiko Schlittermann wrote:
Hallo,
ich bin gerade etwas blöd.
Es gibt mehrere Boot-Partitionen (/dev/sda1 (Platte), /dev/sdb1 (USB-Stick). Ich möchte jetzt, wenn das System gestartet ist, feststellen, von welchem der Geräte gebootet wurde. Die Geräte haben identische Inhalte.
"Weiß" der Kernel noch, welches das Boot-Device war, also von wo der GRUB initrd und vmlinuz geholt hatte.
Danke.
Viele Grüße Heiko
dmesg: ... [ 0.000000] Kernel command line: root=/dev/hda1 ro ... Reicht das ?
Nee, ich spreche *nicht* von der Root-Partition, sondern ich will nachträglich wissen, von welchem Medium initrd und vmlinuz kamen.
...
"Weiß" der Kernel noch, welches das Boot-Device war, also von wo der GRUB initrd und vmlinuz geholt hatte.
Danke.
Viele Grüße Heiko
dmesg: ... [ 0.000000] Kernel command line: root=/dev/hda1 ro ... Reicht das ?
Nee, ich spreche *nicht* von der Root-Partition, sondern ich will nachträglich wissen, von welchem Medium initrd und vmlinuz kamen.
Sch..., voll daneben. (Bloß weil's bei grub in derselben Zeile steht)
Wenn's nicht über checksumming (modules, kernel ...) läuft: keine Chance. Grub kennt kein log (definitiv, ist kein OS, wohin auch?). Initrd wird von grub /dev/ram gemountet und bald wieder vergessen.
Umweg: irgendeine identifizierende Eigenschaft als command-line für kernel-boot mitgeben:
initcall_debug rdinit= rootflags=
Bernhard
lug-dd@mailman.schlittermann.de