X-Git-Url: https://iankelling.org/git/?a=blobdiff_plain;f=fai%2Fconfig%2Fdistro-install-common%2Fdevbyid;h=af97643fd5753c44426252eea7dd7876f697cc53;hb=d9993568d38dd7d2d18ced6b5007e9cc07d1e576;hp=e3443898795c52d5c8569c02e538b8765c23ecf2;hpb=ed3681256885d295f39d5df60784d3281a2f8719;p=automated-distro-installer diff --git a/fai/config/distro-install-common/devbyid b/fai/config/distro-install-common/devbyid index e344389..af97643 100755 --- a/fai/config/distro-install-common/devbyid +++ b/fai/config/distro-install-common/devbyid @@ -4,16 +4,21 @@ # output: /dev/disk/by-id/model+serial, or if no link exists, the same as input short_dev=$1 +if [[ ! -e $short_dev ]]; then + echo "devbyid: error: argument=$short_dev does not exist" + exit 1 +fi -# devices are identified by model+serial num, -# and wwn. model+serial gives me more info, so use that. +# devices are identified by model+serial num +# and for ssd/hdd: wwn, and for nvme: eui. +# model+serial gives me more info, so use that. shopt -s extglob -for id in /dev/disk/by-id/!(wwn*); do - [[ -e $id ]] || break # if we matched nothing - if [[ $(readlink -f $id) == "$short_dev" ]]; then - printf '%s\n' "$id" - exit - fi +for id in /dev/disk/by-id/!(nvme-eui*|wwn*); do + [[ -e $id ]] || break # if we matched nothing + if [[ $(readlink -f $id) == "$short_dev" ]]; then + printf '%s\n' "$id" + exit + fi done # a vm may not have a by-id link. printf '%s\n' "$short_dev"