Dies ist eine alte Version des Dokuments!
Inhaltsverzeichnis
FreeBSD - Festplatten
siehe auch:
Seit FreeBSD 6.3 wurde das menügeführte Plattenpartitionsprogramm sade (sysadmins disk editor) eingeführt.
ACHTUNG:
Mit FreeBSD 9.0 wurde sysinstall entfernt und als Ersatz wurde in FreeBSD 9.0 bsdinstall eingeführt.
Disk Device Codes
| Code | Bezeichnung |
|---|---|
| ad | ATAPI (IDE) disk / SATA |
| da | SCSI direct access disk |
| acd | ATAPI (IDE) CDROM |
| cd | SCSI CDROM |
| fd | Floppy disk |
USB-Stick
Festplatten im System ermitteln
Normalerweise verwendet man unter Linux für diese Aufgabe das Kommando fdisk -l,
in FreeBSD kennt "fdisk" den Parameter "-l" nicht.
GEOM-Namen
braucht man die Übersetzung von GEOM-Namen zu Gerätenamen, dann kann das glabel
> glabel list
> glabel status
diskid/DISK-7JJK1DBC N/A ada0
diskid/DISK-ZA28ER52 N/A ada1
diskid/DISK-1SHNABYZ N/A ada2
diskid/DISK-7JJKANEC N/A ada3
diskid/DISK-WD-WMC6M0H02SPU N/A ada4
diskid/DISK-WD-WXB1HB4H9AHF N/A ada5
diskid/DISK-WD-WMC6N0H1T7LJ N/A ada6
diskid/DISK-WD-WX21D7453SY1 N/A ada7
sysctl
alle Festplatten, die der Kernel kennt:
> sysctl kern.disks kern.disks: ada8 ada7 ada6 ada5 ada4 ada3 ada2 ada1 ada0 cd0
dmesg
alle Festplatten, die beim Boot-Vorgang gefunden wurden:
# dmesg | egrep '^ad|^da|^cd' acd0: DVDROM at ata0-slave UDMA33 ad4: 239372MB at ata2-master SATA150 ad6: 239372MB at ata3-master SATA150
oder
# dmesg | egrep ' at | Serial Number' | fgrep -B1 'Serial Number' ada0 at ahcich0 bus 0 scbus0 target 0 lun 0 ada0: Serial Number WD-WCAW31974189 ada1 at ahcich1 bus 0 scbus1 target 0 lun 0 ada1: Serial Number PL2331LA1G908J ada2 at ahcich9 bus 0 scbus9 target 0 lun 0 ada2: Serial Number WD-WCAZA1451286 ada3 at ahcich10 bus 0 scbus10 target 0 lun 0 ada3: Serial Number WD-WCC131401387 ada4 at ahcich11 bus 0 scbus11 target 0 lun 0 ada4: Serial Number PL1331LA1G7G8H ada5 at ahcich13 bus 0 scbus13 target 0 lun 0 ada5: Serial Number WD-WCAW31095888 ada6 at ahcich14 bus 0 scbus14 target 0 lun 0 ada6: Serial Number WD-WCC131651187 ada7 at ahcich15 bus 0 scbus15 target 0 lun 0 ada7: Serial Number WD-WX21D1453S81 ada8 at siisch2 bus 0 scbus20 target 0 lun 0 ada8: Serial Number WD-WCAZA1478182 ada9 at siisch3 bus 0 scbus21 target 0 lun 0 ada9: Serial Number WD-WX31D147KC8Z pass2 at ahcich7 bus 0 scbus7 target 0 lun 0 pass2: Serial Number HKDP2211168L
bei zuviel Ausgaben in den system message buffer hilft dieser kleine Umweg;
hier werden die dmesg-Meldungen vom letzten Boot-Vorgang in der Datei /var/log/dmesg.boot gespeichert und man kann sie immerwieder einsehen, auch wenn der Puffer schon voll ist und die ersten Meldungen bereits raus sind:
echo '/sbin/dmesg > /var/log/dmesg.boot 2>&1' >> /etc/rc.local reboot egrep ' at | Serial Number' /var/log/dmesg.boot | fgrep -B1 'Serial Number'
/dev
seit FreeBSD 5 (dynamisches /dev) geht auch ein "ls":
# ls -l /dev/ad* /dev/da* /dev/cd* lrwxr-xr-x 1 root wheel 4 Oct 2 10:16 /dev/ad10 -> ada2 lrwxr-xr-x 1 root wheel 4 Oct 2 10:16 /dev/ad6 -> ada0 lrwxr-xr-x 1 root wheel 4 Oct 2 10:16 /dev/ad8 -> ada1 lrwxr-xr-x 1 root wheel 5 Oct 2 10:16 /dev/ad8a -> ada1a crw-r----- 1 root operator 0, 99 Oct 2 10:16 /dev/ada0 crw-r----- 1 root operator 0, 101 Oct 2 10:16 /dev/ada1 crw-r----- 1 root operator 0, 105 Oct 2 12:16 /dev/ada1a crw-r----- 1 root operator 0, 103 Oct 2 10:16 /dev/ada2 crw-r----- 1 root operator 0, 97 Oct 2 10:16 /dev/cd0 crw-r----- 1 root operator 0, 98 Oct 2 10:16 /dev/cd1 crw-r----- 1 root operator 0, 122 Oct 2 10:16 /dev/da0 crw-r----- 1 root operator 0, 130 Oct 2 10:16 /dev/da1 crw-r----- 1 root operator 0, 141 Oct 2 12:16 /dev/da2 crw-r----- 1 root operator 0, 144 Oct 2 12:16 /dev/da3 crw-r----- 1 root operator 0, 146 Oct 2 12:16 /dev/da4 crw-r----- 1 root operator 0, 148 Oct 2 12:16 /dev/da5
ext4 mounten (FreeBSD 11)
den Namen der Gerätedatei (hier ist es ada10) ermitteln, von einer Festplatte, die frisch angesteckt wurde:
> dmesg | tail load_dn_sched dn_sched FQ_CODEL loaded load_dn_sched dn_sched FQ_PIE loaded load_dn_aqm dn_aqm CODEL loaded load_dn_aqm dn_aqm PIE loaded ada10 at ahcich8 bus 0 scbus8 target 0 lun 0 ada10: <WDC WD2503ABYX-01WERA1 01.01S02> ATA8-ACS SATA 2.x device ada10: Serial Number WD-WMAYP4845471 ada10: 300.000MB/s transfers (SATA 2.x, UDMA6, PIO 8192bytes) ada10: Command Queueing enabled ada10: 239429MB (490350672 512 byte sectors)
von ada10 die Partitionsnummer ermitteln:
> ls -1 /dev/ada10s* /dev/ada10s1
von ada10 den Dateisystem-Typ ermitteln:
> fdisk /dev/ada10 | fgrep sysid sysid 131 (0x83),(Linux native)
da es sich hier um ein natives Linux-Dateisystem handelt (ext2, ext3 oder ext4), werden wir den entsprechenden Treiber installieren:
> pkg install sysutils/fusefs-ext4fuse
die erste Partition mit ext4 mounten:
> ext4fuse /dev/ada10s1 /250GB
ATA
früher:
# atacontrol list
heute:
# camcontrol devlist
SCSI/USB/S-ATA
Man kann allerdings SCSI-, USB- und SATA-Gerät auch so anzeigen:
# camcontrol devlist <PLEXTOR DVDR PX-820SA 1.00> at scbus0 target 0 lun 0 (pass0,cd0) <ST31500341AS CC1H> at scbus1 target 0 lun 0 (ada0,pass1) <OCZ-ONYX 1.6> at scbus2 target 0 lun 0 (ada1,pass2) <ST31500341AS CC1H> at scbus3 target 0 lun 0 (ada2,pass3) <OPTIARC DVD-ROM DDU1681S 1.04> at scbus4 target 0 lun 0 (pass4,cd1) <WD My Book 1130 1012> at scbus6 target 0 lun 0 (da0,pass5) <WD SES Device 1012> at scbus6 target 0 lun 1 (pass6,ses0) <WD My Book 1130 1012> at scbus7 target 0 lun 0 (da1,pass7) <WD SES Device 1012> at scbus7 target 0 lun 1 (pass8,ses1) <Generic STORAGE DEVICE 9317> at scbus8 target 0 lun 0 (da2,pass9) <Generic STORAGE DEVICE 9317> at scbus8 target 0 lun 1 (da3,pass10) <Generic STORAGE DEVICE 9317> at scbus8 target 0 lun 2 (da4,pass11) <Generic STORAGE DEVICE 9317> at scbus8 target 0 lun 3 (da5,pass12)
Gerätename vom DVD-Laufwerk finden:
> camcontrol devlist | fgrep DVD | awk '{print $NF}' | tr -s '[(,)]' '\n' | grep -Ev '^$|pass[0-9]'
cd0
cd1
Informationen zu einem Gerät anzeigen
# diskinfo -v ada0
ada0
512 # sectorsize
10000831348736 # mediasize in bytes (9.1T)
19532873728 # mediasize in sectors
4096 # stripesize
0 # stripeoffset
19377850 # Cylinders according to firmware.
16 # Heads according to firmware.
63 # Sectors according to firmware.
WDC WD101KRYZ-01JPDB1 # Disk descr.
78JKLNEC # Disk ident.
No # TRIM/UNMAP support
7200 # Rotation rate in RPM
Not_Zoned # Zone Mode
eine CD/DVD kopieren:
> dd if=/dev/cd0 of=cd.iso bs=2048
gpart
Eigentlich ist gpart ein Partitionswerkzeug für GEOM, aber ich konnte damit auch meine SD-Carte sehen, auf die ich sonst nicht zugreifen konnte.
# gpart show -l # gpart show -lp
# gpart show
=> 0 62533296 ada1 BSD (29G)
0 60817408 1 freebsd-ufs (29G)
60817408 1715888 - free - (837M)
=> 63 3913665 da4 MBR (1.9G)
63 66 - free - (33k)
129 3913535 1 !6 (1.9G)
3913664 64 - free - (32k)
=> 0 3913535 da4s1 EBR (1.9G)
0 3913535 - free - (1.9G)
so sieht eine Festplatte aus, auf der FreeBSD 10 mit ZFS als root-Dateisystem installiert wurde:
> gpart show
=> 34 1953525101 ada0 GPT (932G)
34 1024 1 freebsd-boot (512K)
1058 16777216 2 freebsd-swap (8.0G)
16778274 1936746861 3 freebsd-zfs (924G)
> gpart show -r
=> 34 1953525101 ada0 GPT (932G)
34 1024 1 83bd6b9d-7f41-11dc-be0b-001560b84f0f (512K)
1058 16777216 2 516e7cb5-6ecf-11d6-8ff8-00022d09712b (8.0G)
16778274 1936746861 3 516e7cba-6ecf-11d6-8ff8-00022d09712b (924G)
> gpart list
> gpart list ada0
Geom name: ada0
modified: false
state: OK
fwheads: 16
fwsectors: 63
last: 1953525134
first: 34
entries: 128
scheme: GPT
Providers:
1. Name: ada0p1
Mediasize: 524288 (512K)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 17408
Mode: r0w0e0
rawuuid: 3f4ed14d-14c4-11e4-bc13-bcaec58cba70
rawtype: 83bd6b9d-7f41-11dc-be0b-001560b84f0f
label: gptboot1
length: 524288
offset: 17408
type: freebsd-boot
index: 1
end: 1057
start: 34
2. Name: ada0p2
Mediasize: 8589934592 (8.0G)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 541696
Mode: r1w1e1
rawuuid: 3f621fef-14c4-11e4-bc13-bcaec58cba70
rawtype: 516e7cb5-6ecf-11d6-8ff8-00022d09712b
label: swap1
length: 8589934592
offset: 541696
type: freebsd-swap
index: 2
end: 16778273
start: 1058
3. Name: ada0p3
Mediasize: 991614392832 (924G)
Sectorsize: 512
Stripesize: 0
Stripeoffset: 541696
Mode: r1w1e2
rawuuid: 3f737947-14c4-11e4-bc13-bcaec58cba70
rawtype: 516e7cba-6ecf-11d6-8ff8-00022d09712b
label: zfs1
length: 991614392832
offset: 8590476288
type: freebsd-zfs
index: 3
end: 1953525134
start: 16778274
Consumers:
1. Name: ada0
Mediasize: 1000204886016 (932G)
Sectorsize: 512
Mode: r2w2e5
Informationen einer Festplatte anzeigen
hier befindet sich keine SD-Karte im Slot des Card-Readers:
# bsdlabel da3 bsdlabel: unable to get correct path for da3: Device not configured
hier befindet sich eine SD-Karte im Slot des Card-Readers, auf mir leider der Zugriff verwehrt bleibt:
# bsdlabel da4
# bsdlabel -A da4
bsdlabel: /dev/da4: no valid label found
Name Status Components
gpt/gptboot1 N/A ada0p1
gptid/3f4ed14d-14c4-11e4-bc13-bcaec58cba70 N/A ada0p1
gpt/swap1 N/A ada0p2
gptid/3f737947-14c4-11e4-bc13-bcaec58cba70 N/A ada0p3
diskid/DISK-WD-WX21D7453SY1 N/A ada2
diskid/DISK-7JJKANEC N/A ada5
gpt/swap0 N/A ada3p2
gptid/3d5a4e6c-14c4-11e4-bc13-bcaec58cba70 N/A ada3p3
diskid/DISK-PL1331LAGG7GKH N/A ada6
diskid/DISK-03EF039300A9 N/A da0
ntfs/Freecom N/A da0s1
gpt/gptboot0 N/A ada3p1
gptid/3cde3f3e-14c4-11e4-bc13-bcaec58cba70 N/A ada3p1
mit glabel geht es auch prima:
> glabel status
> glabel status | fgrep -v 'Name Status Components' | awk '{print $NF"\t"$1}'
ada0p1 gpt/gptboot1
ada0p1 gptid/3f4ed14d-14c4-11e4-bc13-bcaec58cba70
ada0p2 gpt/swap1
ada0p3 gptid/3f737947-14c4-11e4-bc13-bcaec58cba70
ada2 diskid/DISK-WD-WX21D7453SY1
ada5 diskid/DISK-7JJKANEC
ada3p2 gpt/swap0
ada3p3 gptid/3d5a4e6c-14c4-11e4-bc13-bcaec58cba70
ada6 diskid/DISK-PL1331LAGG7GKH
da0 diskid/DISK-03EF039300A9
da0s1 ntfs/Freecom
ada3p1 gpt/gptboot0
ada3p1 gptid/3cde3f3e-14c4-11e4-bc13-bcaec58cba70
eine kompatible Partition auf einen Austauschdatenträger anlegen
In diesem Beispiel werde ich eine kleine (2,5") 160GB-USB-Platte partitionieren und mit FAT32 formatieren, damit sie als Austauschdatenträger dienen kann:
> dmesg ... da0 at umass-sim0 bus 0 scbus6 target 0 lun 0 da0: <ST916031 4AS 0009> Fixed Direct Access SCSI-0 device da0: 40.000MB/s transfers da0: 152627MB (312581804 512 byte sectors: 255H 63S/T 19457C) ... > dd if=/dev/zero of=/dev/da0 bs=512 count=4 > fdisk -i /dev/da0 > newfs_msdos -F 32 -L HDMediaBox /dev/da0s1 /dev/da0s1: 312500288 sectors in 4882817 FAT32 clusters (32768 bytes/cluster) BytesPerSec=512 SecPerClust=64 ResSectors=32 FATs=2 Media=0xf0 SecPerTrack=63 Heads=255 HiddenSecs=0 HugeSectors=312576642 FATsecs=38148 RootCluster=2 FSInfo=1 Backup=2 > mount -t msdosfs -o large /dev/da0s1 /mnt/ > df -h /mnt/ Filesystem Size Used Avail Capacity Mounted on /dev/da0s1 149G 96k 149G 0% /mnt
Status aller Festplatten anzeigen
#!/usr/bin/env bash
VERSION="v2016010500"
SKRIPTNAME="$(basename ${0})"
SKRIPTVERZEICHNIS="$(dirname ${0})"
#------------------------------------------------------------------------------#
### pkg install smartmontools-6.2_2
### echo 'smartd_enable="YES"' >> /etc/rc.conf
#------------------------------------------------------------------------------#
if [ "$(id -u)" != "0" ] ; then
echo "Sie muessen root sein!"
exit 1
fi
#------------------------------------------------------------------------------#
if [ "$(uname -o)" == "FreeBSD" ] ; then
### FreeBSD
SMARTOPT="-a"
elif [ "$(uname -o)" == "GNU/Linux" ] ; then
### Linux
SMARTOPT="-H"
else
### Windows
SMARTOPT="-h"
fi
#------------------------------------------------------------------------------#
LAUFWERKE="$(grep -F ' Serial Number ' /var/log/dmesg.boot | awk -F':' '/: /{print $1}')"
#echo "LAUFWERKE='${LAUFWERKE}'"
#------------------------------------------------------------------------------#
SERIAL_SLOT="$(for i in ${LAUFWERKE}
do
cat /var/log/dmesg.boot | sed -ne "/^${i} /,/ Serial Number /p"
done)"
#echo "SERIAL_SLOT='${SERIAL_SLOT}'"
#exit
#------------------------------------------------------------------------------#
(
for PLATTE in ${LAUFWERKE}
do
echo "================================================================="
echo "${SERIAL_SLOT}" | egrep "^${PLATTE}[:]* "
echo
#smartctl ${SMARTOPT} /dev/${PLATTE} | grep -F Serial
smartctl ${SMARTOPT} /dev/${PLATTE} | grep -Ei 'Serial|Error'
### bei Linux auch moeglich
#hdparm -i /dev/${PLATTE}
echo "-----------------------------------------------------------------"
done
) 2>&1 | tee /var/log/${SKRIPTNAME}.log
ls -lha /var/log/${SKRIPTNAME}.log
#------------------------------------------------------------------------------#
Handyuhr "Burg 12"
als Massenspeicher
steckt man die Uhr an den USB-Port, dann kann man das hier in DMESG sehen:
> dmesg ... ugen2.3: <MediaTek Inc> at usbus2 umass0: <6225--Storage> on usbus2 umass0: SCSI over Bulk-Only; quirks = 0x4000 umass0:7:0:-1: Attached to scbus7 da0 at umass-sim0 bus 0 scbus7 target 0 lun 0 da0: <MEDIATEK FLASH DISK 6225> Removable Direct Access SCSI-0 device da0: 1.000MB/s transfers da0: Attempt to query device size failed: NOT READY, Medium not present da1 at umass-sim0 bus 0 scbus7 target 0 lun 1 da1: <MEDIATEK FLASH DISK 6225> Removable Direct Access SCSI-0 device da1: 1.000MB/s transfers da1: 1MB (2048 512 byte sectors: 64H 32S/T 1C)
zieht man die Uhr vom USB-Port wieder ab, dann kann man das hier in DMESG sehen:
> dmesg ... ugen2.3: <MediaTek Inc> at usbus2 (disconnected) umass0: at uhub2, port 2, addr 3 (disconnected) (da0:umass-sim0:0:0:0): lost device - 0 outstanding, 1 refs (da1:umass-sim0:0:0:1): lost device - 0 outstanding, 1 refs (pass4:umass-sim0:0:0:0): passdevgonecb: devfs entry is gone (pass5:umass-sim0:0:0:1): passdevgonecb: devfs entry is gone (da0:umass-sim0:0:0:0): removing device entry (da1:umass-sim0:0:0:1): removing device entry
> mount -t msdosfs /dev/da1 /mnt > find /mnt /mnt /mnt/@mms /mnt/sat /mnt/phb_video.dat /mnt/Settings /mnt/Download /mnt/SMSSimCust
als USB-Modem (COM-Port)
> dmesg ... ugen2.3: <MediaTek Inc> at usbus2 umodem0: <6225 COMcommif> on usbus2 umodem0: data interface 0, has CM over data, has break
