Besoin d'identifier le disque dans zpool… comme?

J'ai besoin de remplacer un mauvais disque dans zpool sur FreeNAS.


zpool status

Spectacles

gptid/5fe33556-3ff2-11e2-9437-f46d049aaeca  UNAVAIL      0     0     0  cannot open

Comment puis-je trouver le numéro de série de ce disque?

Suite:


glabel status

Donne:

                                      Name  Status  Components
ufs/FreeNASs3 N/A da0s3
ufs/FreeNASs4 N/A da0s4
ufsid/4fa405ab96518680 N/A da0s1a
ufs/FreeNASs1a N/A da0s1a
ufs/FreeNASs2a N/A da0s2a
gptid/5f3c0517-3ff2-11e2-9437-f46d049aaeca N/A ada1p2
gptid/60570005-3ff2-11e2-9437-f46d049aaeca N/A ada3p2
gptid/60ebeaa5-3ff2-11e2-9437-f46d049aaeca N/A ada4p2
gptid/a767b8ef-1c95-11e2-af4c-f46d049aaeca N/A ada6p2
gptid/61925b86-3ff2-11e2-9437-f46d049aaeca N/A ada9p2
gptid/4599731b-8f15-11e1-a14c-f46d049aaeca N/A ada10p2

Je ne vois pas

gptid/5fe33556

là.

ET

camcontrol devlist

Donne:

<hitachi hds723030ble640="" mx6oaab0="">  at scbus0 target 0 lun 0 (pass0,ada0)
<st3000vx000-9yw166 cv13=""> at scbus4 target 0 lun 0 (pass1,ada1)
<st3000vx000-9yw166 cv13=""> at scbus6 target 0 lun 0 (pass3,ada3)
<hitachi hds723030ble640="" mx6oaab0=""> at scbus7 target 0 lun 0 (pass4,ada4)
<st3000dm001-9yn166 cc4c=""> at scbus8 target 0 lun 0 (pass5,ada5)
<wdc 80.00a80="" wd30ezrx-00mmmb0=""> at scbus8 target 1 lun 0 (pass6,ada6)
<wdc 80.00a80="" wd30ezrx-00mmmb0=""> at scbus9 target 0 lun 0 (pass7,ada7)
<st3000dm001-9yn166 cc4c=""> at scbus9 target 1 lun 0 (pass8,ada8)
<hitachi hds723030ble640="" mx6oaab0=""> at scbus10 target 0 lun 0 (pass9,ada9)
<hitachi hds5c3030ala630="" meaoa580=""> at scbus11 target 0 lun 0 (pass10,ada10)
&lt; USB Flash Memory 1.00&gt; at scbus12 target 0 lun 0 (pass11,da0)

Cela signifie-t-il que

ada2

Est-ce un mauvais lecteur?

Rafraîchir:

Eh bien, je suis presque sûr que

ada2

C'est un mauvais lecteur. Et j'ai des entrées, je le sais pour le disque.

Mais il semble que je me suis laissé là-bas ...

ada0

- La dernière fois que j'étais dans la boîte. Puis-je remplacer

ada2

avec

ada0

à distance? Alors que quelqu'un n'atteint pas le bureau?
</hitachi></hitachi></st3000dm001-9yn166></wdc></wdc></st3000dm001-9yn166></hitachi></st3000vx000-9yw166></st3000vx000-9yw166></hitachi>
Invité:

Dominique

Confirmation de:

Pour obtenir un numéro de disque série, il doit être lancé et disponible:


camcontrol identify <device> |grep ^serial

(C'est possible (S) ATA)


smartcl -i <device> |grep ^Serial

Lire une étiquette de disque après avoir extraite du boîtier

Dans votre cas, je pense que la 3ème décision - Le seul disponible. Ainsi, en supposant que vous voulez d'abord identifier le disque:

Premier essai

glabel status

(Puisque votre disque n'est pas affiché comme

DOWN

ou

REMOVED

):

$ glabel status
gptid/c7868819-ddc1-11e2-8c3e-00138f3fd9c7 N/A da0p1
gptid/c96da0bc-ddc1-11e2-8c3e-00138f3fd9c7 N/A da2p1

Vous pouvez voir votre section avec

glabel status

Ensuite, vous pouvez facilement déterminer le nom du périphérique de disque. (par exemple:

da0

pour

gptid/c7868819-ddc1-11e2-8c3e-00138f3fd9c7

section).

Vous pouvez voir le journal de journalisation de votre système à partir de

/var/log/messages

(Il pareil "

dmesg

"):

$ dmesg | grep ^da0
da0 at mps0 bus 0 scbus0 target 0 lun 0
da0: <ata cc26="" st3000dm001-1ch1=""> Fixed Direct Access SCSI-6 device
da0: 600.000MB/s transfers
da0: Command Queueing enabled
da0: 2861588MB (5860533168 512 byte sectors: 255H 63S/T 364801C)

Vous ne pouvez pas voir votre section avec

glabel status

$ camcontrol devlist
<ata cc26="" st3000dm001-1ch1=""> at scbus0 target 0 lun 0 (pass0,da0)
<ata cc26="" st3000dm001-1ch1=""> at scbus0 target 4 lun 0 (pass2,da2)

De là, vous pouvez facilement déterminer lequel manque-t-il (

da1

dans ce cas), Regarder

dmesg

Identifier ce disque.

Donc, il n'y a pas de décision actuelle ici. J'espère juste que ça vous aide à voir les choses un peu plus claires.

Savoir plus

:

http://en.wikipedia.org/wiki/GEOM
http://www.freebsd.org/cgi/man ... Dhtml
http://www.freebsd.org/cgi/man ... n%3D8
http://smartmontools.sourcefor ... .html
</ata></ata></ata></device></device>

Christine

Confirmation de:

#!/bin/sh
echo
echo $(basename $0) - Mounted Drives on $(hostname)
cat /etc/version
date
echo
diskinfo="$(glabel status | tail -n +2 | awk '{split($3,a,"p"); print a[1],$1}')"
echo "+========+==========================+==================+============================================+"
echo "| Device | DISK DESCRIPTION | SERIAL NUMBER | GPTID |"
echo "+========+==========================+==================+============================================+"

for d in $(echo "$diskinfo" | cut -d" " -f 1)
do
diskinf=$(diskinfo -v $d | grep '# Disk ')
diskdescription=$(echo "$diskinf" | grep '# Disk desc' | cut -d# -f 1 | xargs)
diskserialno=$(echo "$diskinf" | grep '# Disk ident' | cut -d# -f 1 | xargs)
diskgptid=$(echo "$diskinfo" | grep "^$d" | cut -d" " -f 2)
printf "| %-6s | %-24s | %-16s | %-42s |\n" "$d" "$diskdescription" "$diskserialno" "$diskgptid"
echo "+--------+--------------------------+------------------+--------------------------------------------+"
done

https://forums.freenas.org/ind ... 0497/

Fabien

Confirmation de:

J'ai créé un script dans lequel tous GPTID Et associé au numéro de série du disque dur et du nom du périphérique.

#!/bin/bash

#Use smartctl to get Serial Number - else dmesg is used
USESMART=0
#save glabel status to temporary file
CACHEGLABEL=1

if [ $CACHEGLABEL -eq 0 ]
then
GLCMD="glabel status"
else
GLTMP=/var/tmp/$0.glabel
glabel status > $GLTMP
GLCMD="cat $GLTMP"
fi

ADALOW=`ls /dev/ada[0-9] 2>/dev/null`
ADAHIGH=`ls /dev/ada[0-9][0-9] 2>/dev/null`
DALOW=`ls /dev/da[0-9] 2>/dev/null`
DAHIGH=`ls /dev/da[0-9][0-9] 2>/dev/null`
#check if all device nodes exist or skip
if [[ $ADALOW == *ls* ]]
then
$DALOW=
fi
if [[ $ADAHIGH == *ls* ]]
then
$ADAHIGH=
fi
if [[ $DALOW == *ls* ]]
then
$DALOW=
fi
if [[ $DAHIGH == *ls* ]]
then
$DAHIGH=
fi
for FILE in $ADALOW $ADAHIGH $DALOW $DAHIGH
do
DEV=${FILE##'/dev/'}
#echo -n "${DEV}: "
if [ $USESMART -eq 0 ]
then
SERIAL=`grep $DEV: /var/log/dmesg.today |grep -i Serial | awk '{print $(NF)}'`
else
SERIAL=`smartctl -a $FILE | grep -i 'Serial Number'| awk '{print $(NF)}'`
fi
#this skips all ufs drives
GPTID=`$GLCMD |grep 2$ |grep ${DEV}p|cut -d' ' -f1`
if [ "${GPTID}x" == 'x' ]
then
GPTID="No GPTID"
fi
if [ "${SERIAL}x" == 'x' ]
then
$SERIAL="Not found"
fi
echo ${DEV}: Serial $SERIAL \; GPTID=$GPTID
done

if [ $CACHEGLABEL -eq 1 ]
then
rm $GLTMP
fi

Hippolite

Confirmation de:

Vous pouvez essayer quelque chose comme ça. J'ai travaillé:

devlist=$(sudo camcontrol devlist | awk ' { print $NF } ' | cut -f 2 -d , | sed 's/)//'g)

for device in $devlist; do sudo camcontrol identify $device | grep serial; done

Cela devrait apporter toute la liste des numéros de série.

Emile

Confirmation de:

En supposant que ce dont vous avez besoin uuid disque spécifique dans le système basé sur Linux, vous pouvez obtenir:

ls -la /dev/disk/by-uuid/

ou par étiquette fs:

 ls -la /dev/disk/by-label/ 

ou connexion matérielle:

ls-la /dev/disk/by-path/

Pour répondre aux questions, connectez-vous ou registre