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.
> camcontrol devlist
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
siehe auch: Image auf einen USB-Stick schreiben
> dmesg ... usb_msc_auto_quirk: UQ_MSC_NO_GETMAXLUN set for USB mass storage device SanDisk SanDisk 3.2 Gen1 (0x0781:0x55b1) usb_msc_auto_quirk: UQ_MSC_NO_PREVENT_ALLOW set for USB mass storage device SanDisk SanDisk 3.2 Gen1 (0x0781:0x55b1) ugen0.4: <SanDisk SanDisk 3.2 Gen1> at usbus0 umass0 on uhub0 umass0: <SanDisk SanDisk 3.2 Gen1, class 0/0, rev 3.20/1.10, addr 3> on usbus0 umass0: SCSI over Bulk-Only; quirks = 0x8100 umass0:20:0: Attached to scbus20 da0 at umass-sim0 bus 0 scbus20 target 0 lun 0 da0: <SanDisk SanDisk 3.2 Gen1 DL17> Removable Direct Access SPC-4 SCSI device da0: Serial Number A2003B84B6F17838 da0: 400.000MB/s transfers da0: 238728MB (488914944 512 byte sectors) da0: quirks=0x2<NO_6_BYTE>
> glabel status
Name Status Components
...
diskid/DISK-A200888888888888 N/A da0
> ls -lha /dev/da0* crw-r----- 1 root operator 0xf1 Feb 24 14:18 /dev/da0 crw-r----- 1 root operator 0xf3 Feb 24 14:49 /dev/da0s1
> mount -t msdosfs /dev/da0s1 /mnt/ mount_msdosfs: /dev/da0s1: Invalid argument
> gpart show da0
=> 63 488914881 da0 MBR (233G)
63 7489 - free - (3.7M)
7552 488907392 1 ntfs (233G)
> pkg info sysutils/fusefs-ntfs > mount -t ntfs-3g /dev/da0s1 /mnt/ mount: /dev/da0s1: Invalid fstype: Invalid argument
Use another USB device with the FAT16 or FAT32 format. Newer USB 3.0 devices with large capacity use the exFAT format, and might not support the FAT32 format. Try using USB 2.0 devices with smaller capacity. - Diese Fehler treten auf, wenn das USB-Laufwerk zu grß ist; FreeBSD unterstützt nur die kleineren USB2.0-Laufwerke.
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
