Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
Hardware-Erkennung
System Infos
dmidecode oder biosdecode
Ubuntu
> udevadm info -e | less
Fakten eines Systems
Facter ist ein Ruby-Probramm, mit dem man von verschiedenen Systemen die "Fakten" ermitteln kann.
# aptitude -y install facter
# facter architecture => x86_64 domain => deutschland.de facterversion => 1.5.6 fqdn => fritz.deutschland.de hardwareisa => unknown hardwaremodel => x86_64 hostname => fritz id => root interfaces => eth0,eth1,eth2,eth0_oq ipaddress => 192.168.1.252 ipaddress_eth0_oq => 192.168.1.252 is_virtual => false kernel => Linux kernelmajversion => 2.6 kernelrelease => 2.6.32-26-server kernelversion => 2.6.32 lsbdistcodename => lucid lsbdistdescription => Ubuntu 10.04.1 LTS lsbdistid => Ubuntu lsbdistrelease => 10.04 lsbmajdistrelease => 10 macaddress => 00:4c:e4:bb:37:5f macaddress_eth0 => 00:4c:e4:bb:37:5f macaddress_eth0_oq => 00:4c:e4:bb:37:5f macaddress_eth1 => 00:01:9b:d5:a6:d2 macaddress_eth2 => 00:5f:71:50:05:b9 manufacturer => Bochs memoryfree => 416.91 MB memorysize => 493.70 MB netmask => 255.255.255.0 netmask_eth0_oq => 255.255.255.0 network_eth0_oq => 10.30.0.0 operatingsystem => Ubuntu operatingsystemrelease => 10.04 physicalprocessorcount => 0 processor0 => QEMU Virtual CPU version 0.12.3 processorcount => 1 productname => Bochs ps => ps -ef puppetversion => 0.25.4 rubysitedir => /usr/local/lib/site_ruby/1.8 rubyversion => 1.8.7 selinux => false serialnumber => Not Specified sshdsakey => AAAAB3NzaC1kc3MAAACBALAXF0yA8viNDXigzoeufxGX6KHt6B1wArkv829WiMncs6sWZVS8NOwRG824E7f0hBipnpxxhFPOLqnYHbOKyRZn4Z8TokflHfOTqOjrRC4P4IZ+FB8ciCAYSRUH8BaelkLd31OYAyRqWzp+fQQwp3BPTw2J1x/QH9z43xl0fZVpAAAAFQCB5IPM9GeE8VwYw5dY4vImIHCXywAAAIBmd81alxC4Se17nnsEz1iDh8wX3rQSg1g8mM+f7vLEPioaqRt4uGum72ZtK1T+G6vQi9/K6snMXG8eM+eTwSqfGNbV8mjIFLED13IHqznBroUDkMB6qgi18tRpvMaQA/aNS19gWyIFh5aaYYrBiKBYWonYR/w0id/w3gxelfNAMgAAAIEAp+wA/byh+r7whGO0ldS5VOobIo9Bh69ssWfDihLKaQFKbeMccW/US+GZMES9IzfmQlZgLYWf59lCg1bZinFoG7bUKobQBhGRRqo18Q/eXs+PPoSTIUONNCD7ofjg7p8sw+AaGXgfWzL+JUyXDYC0XexhZEJvZFu1js8R0GqMNMg= sshrsakey => AAAAB3NzaC1yc2EAAAABIwAAAQEAq/SvbV3L+YXhGtisUNWiU4as65dA/wjOYeazdLQ30KbmVyhtspEqmI3EAVr4v3n9tOtXs7sE4k/5HdVwP6WghoTia2LoigNuM5KYhODMZKIUvP4A5tvxUlmF1d7b9oNT+P5RBERC+aHvXWZ5CzsJYJw+V61npqD7xeQosMnQiJIDf4E4f7GZtErySAaAbTFQzNqTuLulXmKWW8MDfaGFDlAEWP1zs4nuXbYihrMTT4RmZwCTloObfXKgve46G7fUVnuwJ8QrcNJBzUCV/fNoQicNZw9ma8JBGfuPnhGafGVrziZhDRT6S9paqiWeNYFvUSjRhd/TeCavNqFIj07XKQ== swapfree => 0.00 kB swapsize => 0.00 kB timezone => CET type => Other uniqueid => 007f0101 uptime => 2:55 hours uptime_days => 0 uptime_hours => 2 uptime_seconds => 10520 virtual => physical
Arbeitsspeicher
Plattenspeicher
Die folgende Lösung ist die einfachste, aber leider Sprach- und Distributionsabhängig:
fdisk -l | egrep ^'Platte /|Disk /' Disk /dev/sda: 72.7 GB, 72746008576 bytes Disk /dev/sdb: 898.9 GB, 898990342144 bytes Disk /dev/sdc: 1023 MB, 1023934464 bytes
Das Laufwerk /dev/sdc ist ein 1GB-USB-Stick. Bei dieser Methode kann man ihn nicht klar genug von den eingebauten Laufwerken unterscheiden, deshalb ist eine der nachfolgenden Methoden zum ermitteln der internen Festplatten besser geeignet.
Hier eine Distributionsunabhängige möglichkeit die Plattengröße zu ermitteln:
fgrep -H 0 /sys/class/block/*/removable | egrep -v 'loop|ram|dm-' | awk -F'/' '{print $5}' | while read DEV;do echo "${DEV}=$(cat /sys/class/block/${DEV}/size) Bloecke";done
sda=142082048 Bloecke
sdb=1755840512 Bloecke
oder in MB
fgrep -H 0 /sys/class/block/*/removable | egrep -v 'loop|ram|dm-' | awk -F'/' '{print $5}' | while read DEV;do echo "${DEV}=$(cat /sys/class/block/${DEV}/size | awk -F'/' '{print $1/2048}') MB";done
sda=69376 MB
sdb=857344 MB
HDD
FreeBSD
# sysctl kern.disks kern.disks: ada10 ada9 ada8 ada7 ada6 ada5 ada4 ada3 ada2 ada1 ada0 cd0
# camcontrol devlist <WDC WD2005FBYZ-01YCBB2 RR07> at scbus0 target 0 lun 0 (ada0,pass0) <WDC WD161KRYZ-01AGBB0 01.01H01> at scbus1 target 0 lun 0 (ada1,pass1) <WDC WD121KRYZ-01W0RB0 01.01H01> at scbus2 target 0 lun 0 (ada2,pass2) <WDC WD101KRYZ-01JPDB1 01.01H02> at scbus3 target 0 lun 0 (ada3,pass3) <ST10000NM0016-1TT101 SND0> at scbus4 target 0 lun 0 (ada4,pass4) <HGST HUH721010ALE600 LHGNT384> at scbus5 target 0 lun 0 (ada5,pass5) <WDC WD101KRYZ-01JPDB1 01.01H02> at scbus6 target 0 lun 0 (ada6,pass6) <WDC WD161KRYZ-01AGBB0 01.01H01> at scbus7 target 0 lun 0 (ada7,pass7) <PIONEER BD-RW BDR-S09 1.51> at scbus9 target 0 lun 0 (sg0,cd0,pass8) <WDC WD121KRYZ-01W0RB1 02.02H02> at scbus10 target 0 lun 0 (ada8,pass9) <ST10000NM0016-1TT101 SNE0> at scbus12 target 0 lun 0 (ada9,pass10) <WDC WD121KRYZ-01W0RB0 01.01H01> at scbus13 target 0 lun 0 (ada10,pass11) <AHCI SGPIO Enclosure 2.00 0001> at scbus14 target 0 lun 0 (ses0,pass12)
FreeBSD + Linux
# lsblk DEVICE MAJ:MIN SIZE TYPE LABEL MOUNT ada0 0:129 1.8T GPT - - ada0p1 0:143 260M efi gpt/efiboot0 /boot/efi <FREE> -:- 1.0M - - - ada0p2 0:144 4.0G freebsd-swap gpt/swap0 SWAP ada0p3 0:145 1.8T freebsd-zfs gpt/zfs0 <ZFS> <FREE> -:- 68K - - - ada1 0:130 15T - diskid/DISK-2CGWXXXX - ada10 0:141 11T - - - ada2 0:131 11T - diskid/DISK-5PGRXXXX - ada3 0:132 9.1T - diskid/DISK-7JJKXXXX - ada4 0:133 9.1T - diskid/DISK-ZA25XXXX - ada5 0:134 9.1T - diskid/DISK-1SHNXXXX - ada6 0:135 9.1T - diskid/DISK-7JJKXXXX - ada7 0:136 15T - diskid/DISK-2CKMXXXX - ada8 0:137 11T - diskid/DISK-5PHWXXXX - ada9 0:139 9.1T - diskid/DISK-ZA2CXXXX -
# smartctl --scan /dev/ada0 -d atacam # /dev/ada0, ATA device /dev/ada1 -d atacam # /dev/ada1, ATA device /dev/ada2 -d atacam # /dev/ada2, ATA device /dev/ada3 -d atacam # /dev/ada3, ATA device /dev/ada4 -d atacam # /dev/ada4, ATA device /dev/ada5 -d atacam # /dev/ada5, ATA device /dev/ada6 -d atacam # /dev/ada6, ATA device /dev/ada7 -d atacam # /dev/ada7, ATA device /dev/cd0 -d atacam # /dev/cd0, ATA device /dev/ada8 -d atacam # /dev/ada8, ATA device /dev/ada9 -d atacam # /dev/ada9, ATA device /dev/ada10 -d atacam # /dev/ada10, ATA device /dev/ses0 -d atacam # /dev/ses0, ATA device
Linux
# ls -1 /sys/class/block/ loop0 ... nvme0n1 nvme0n1p1 nvme0n1p2 sda sda1 sda2 sda3 sr0
# ls -1 /dev/disk/by-id/ ata-HL-DT-ST_DVD+_-RW_GU90N_M2OG22D3834 ata-WDC_WD1003FBYZ-010FB0_WD-WCAW37334750 ata-WDC_WD1003FBYZ-010FB0_WD-WCAW37334750-part1 ata-WDC_WD1003FBYZ-010FB0_WD-WCAW37334750-part2 ata-WDC_WD1003FBYZ-010FB0_WD-WCAW37334750-part3 nvme-eui.5cd2e42981503a70 nvme-eui.5cd2e42981503a70-part1 nvme-eui.5cd2e42981503a70-part2 nvme-SSDPEKKF512G8_NVMe_INTEL_512GB_PHHH830500MA512H nvme-SSDPEKKF512G8_NVMe_INTEL_512GB_PHHH830500MA512H-part1 nvme-SSDPEKKF512G8_NVMe_INTEL_512GB_PHHH830500MA512H-part2 wwn-0x5001480000000000 wwn-0x50014ee25f2c0054 wwn-0x50014ee25f2c0054-part1 wwn-0x50014ee25f2c0054-part2 wwn-0x50014ee25f2c0054-part3
CPU
CPU-Erkennung
Linux
# cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 13 model name : Intel(R) Pentium(R) M processor 1.73GHz stepping : 8 cpu MHz : 1733.000 cache size : 2048 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 2 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 apic mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss tm pbe up bts est tm2 bogomips : 3467.42 clflush size : 64 cache_alignment : 64 address sizes : 32 bits physical, 32 bits virtual power management:
FreeBSD
Wenn man die Linuxemulation aktiviert hat und das Linux-proc-Verzeichnis gemountet hat, kann man es genauso wie bei Linux machen.
# cat /usr/compat/linux/proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 15 model : 1 model name : AMD Athlon(tm) Dual Core Processor 5050e stepping : 2 processor : 1 vendor_id : AuthenticAMD cpu family : 15 model : 1 model name : AMD Athlon(tm) Dual Core Processor 5050e stepping : 2 flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 b19 mmx fxsr xmm sse2 cpu MHz : 2600.02 bogomips : 2600.02
Muss man aber nicht und will man auch nicht immer, denn die Infos dort müssen nicht immer 100%-ig stimmen.
Bei FeeBSD kommt man über das Werkzeug dmesg an die ersehnten Infos ran:
# dmesg | grep Features Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT> Features2=0x2001<SSE3,CX16> AMD Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow!+,3DNow!> AMD Features2=0x11f<LAHF,CMP,SVM,ExtAPIC,CR8,Prefetch>
Wie man hier im Vergleich sehen kann, wird das Prozessorflag SVM für Hardware-Virtualisierung in der Linux-Emulation nicht angezeigt, von dmesg dagegen schon.
Die kompletten Prozessor-Infos sehen in dmesg so aus:
CPU: AMD Athlon(tm) Dual Core Processor 5050e (2600.02-MHz K8-class CPU) Origin = "AuthenticAMD" Id = 0x60fb2 Stepping = 2 Features=0x178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,MMX,FXSR,SSE,SSE2,HTT> Features2=0x2001<SSE3,CX16> AMD Features=0xea500800<SYSCALL,NX,MMX+,FFXSR,RDTSCP,LM,3DNow!+,3DNow!> AMD Features2=0x11f<LAHF,CMP,SVM,ExtAPIC,CR8,Prefetch> TSC: P-state invariant real memory = 4294967296 (4096 MB) avail memory = 4065894400 (3877 MB) ACPI APIC Table: <082708 APIC1356> FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs FreeBSD/SMP: 1 package(s) x 2 core(s) cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1
Hier ist auch zu sehen, das die CPU zwei Kerne besitzt, das kann man in der /usr/compat/linux/proc/cpuinfo auch nur am Namen erkennen.
16/32/64 Bit
- /usr/src/linux-headers-2.6.31-20/arch/x86/include/asm/cpufeature.h
Zur Erkennung der CPU, hat jede ein entsprechendes Flag:
- Real mode - 16 bit CPU
- i286-Protected Mode - 16-bit CPU
- i386-Protected Mode - 32-bit CPU
- Long mode (lm) - 64 bit CPU
Die 64-Bit-CPUs haben das Flag lm (long mode):
egrep ^flags /proc/cpuinfo | tr -s ' ' '\n' | egrep ^lm | uniq lm
Hardware-Virtualisierung
egrep ^flags /proc/cpuinfo | tr -s ' ' '\n' | egrep 'vmx|svm' | uniq vmx
oder
egrep 'vmx|svm' /proc/cpuinfo > /dev/null && echo "CPU unterstützt Hardware-Virtualisierung" || echo "CPU unterstützt keine Hardware-Virtualisierung" CPU unterstützt Hardware-Virtualisierung
MAC-Adressen
So ermittelt man die MAC-Adressen eines Linux-Systems am Sinnvollsten und umgeht dadurch einige Fallstricke, die durch Systemunterschiede auftreten.
find /sys/ -type f | egrep 'address' | fgrep -i 'eth' | xargs cat ${1}
weitere Informationen beschaffen
Mit dmidecode kann man viele Details von seinem System ermitteln, allerdings ist das kein natives Bordmittel. Dmidecode ist in den Repositories der meisten Distributionen enthalten, sodass man dieses Paket meistens problemlos nachinstallieren kann.
dmidecode -t bios system baseboard chassis processor memory cache connector slot
Hilfe:
dmidecode -h
BIOS:
dmidecode -t 0 dmidecode -t 0,13
System:
dmidecode -t 1 dmidecode -t 1,12,15,23,32
Hauptplatine:
dmidecode -t 2 dmidecode -t 2,10 dmidecode -t 1,2,3
RAM:
dmidecode -t 5,6,16,17 dmidecode -t 5,6,7,16,17,18,19,20
CPU:
dmidecode -t 4
Port-Anschlüsse (COM, USB):
dmidecode -t 8
System-Steckplätze (PCI, AGP, PCIe:
dmidecode -t 9
OEM-Angaben (Händlerinformationen):
dmidecode -t 11
System Event Log:
dmidecode -t 15
Fehler beim System-Boot:
dmidecode -t 32
BIOS-Datum:
dmidecode -t 0 | fgrep -i 'Release Date:'
Release Date: 07/17/2009
dmidecode -t 0 | fgrep -i 'Release Date:' | sed -e 's/^\t/BIOS /' -e 's/: /=/' BIOS Release Date=07/17/2009
System-Infos:
dmidecode -t 1 | egrep -i 'Manufacturer:|Product Name:|Serial Number:'
Manufacturer: Dell Inc.
Product Name: PowerEdge R710
Serial Number: 93GL345
dmidecode -t 1 | egrep -i 'Manufacturer:|Product Name:|Serial Number:' | sed -e 's/^\t/SYSTEM /' -e 's/: /=/' SYSTEM Manufacturer=Dell Inc. SYSTEM Product Name=PowerEdge R710 SYSTEM Serial Number=93GL345
Anzahl der CPUs:
dmidecode -t processor | egrep -i 'Socket Designation:' | wc -l 2
dmidecode -t processor | egrep -i 'Socket Designation:' | wc -l | awk '{print "CPU Anzahl="$1}'
CPU Anzahl=2
CPU-Infos:
dmidecode -t processor | sed -e '1,/^$/ d' -e '/^$/ q' | egrep -i 'Family:|Manufacturer:|ID:|Signature:|Core Count:|Core Enabled:'
Family: Xeon
Manufacturer: Intel
ID: A5 A6 A1 A0 AF AB AB AF
Signature: Type 0, Family 6, Model 26, Stepping 5
Core Count: 4
Core Enabled: 4
dmidecode -t processor | sed -e '1,/^$/ d' -e '/^$/ q' -e 's/^\t/CPU /' -e 's/: /=/' | egrep -i 'Family=|Manufacturer=|ID=|Signature=|Core Count=|Core Enabled=' CPU Family=Xeon CPU Manufacturer=Intel CPU ID=A5 06 01 00 FF FB EB BF CPU Signature=Type 0, Family 6, Model 26, Stepping 5 CPU Core Count=4 CPU Core Enabled=4
