[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re : Re: Modifier le nom d'une partition /dev/sdc en sda.



------- Original Message -------
Le lundi 24 avril 2023 à 15:52, ajh-valmer <ajh.valmer@free.fr> a écrit :


> 

> 

> On Sunday 23 April 2023 11:23:26 Hugues Larrive wrote:
> 

> > J'ai trouvé une solution par l'initrd.
> > Créer un script /etc/initramfs-tools/scripts/init-premount/reorder_sd :
> > #!/bin/sh
> > if [ "$BOOT" = "local" ]; then
Cette condition empêche le script d'être exécuté durant durant la création
de l'initrd ce qui provoquerait un plantage.

> > udevadm trigger --settle
Ça c'est pour être sûr que udev a fini de créer les périphériques avant qu'on les supprime.

> > echo 1 > /sys/block/sda/device/delete
> > echo 1 > /sys/block/sdb/device/delete
> > echo 1 > /sys/block/sdc/device/delete
Ces 3 lignes suppriment sda, sdb, et sdc.

> > echo "- - -" > /sys/class/scsi_host/host8/scan
> > echo "- - -" > /sys/class/scsi_host/host6/scan
> > echo "- - -" > /sys/class/scsi_host/host7/scan
Celles-ci provoquent leur re-création dans l'ordre souhaité. Il est important de bien identifier le n° de host scsi du disque qu'on veut en /dev/sda (ici host8) et d'adapter le script en conséquence. Là host6 et host7 sont re-scannés ce qui recrée les 3 périphériques mais on pourrait aussi ne recréer que sda.

Pour identifier le host de sdc (qu'on veut en sda) on peut faire `ls -l /sys/block/sdc`, le host se trouve dans le chemin pointé par ce lien symbolique.

> > fi
> > update-initramfs -u && reboot
> > Et voilà !
> 

> 

> Hélas non...
> 

> J'obtiens au reboot un (initramfs).
> Lors du boot, multiples lignes :
> mdam : no arrays found in config file or automatically
> puis :
> missing modules cat /proc/modules; ls /dev
> Alert UUID <partition sdc5> does not exist. Dropping to a shell.
> 

> (initramfs)

Voilà une version améliorée du script qui mémorise les numéros de host scsi avant leur suppression :
#!/bin/sh

if [ "$BOOT" = "local" ]; then
	udevadm trigger --settle

	host_sda=$(ls -l /sys/block/sdc | sed -E 's/.*(host.).*/\1/')
	host_sdb=$(ls -l /sys/block/sda | sed -E 's/.*(host.).*/\1/')
	host_sdc=$(ls -l /sys/block/sdb | sed -E 's/.*(host.).*/\1/')

	echo 1 > /sys/block/sda/device/delete
	echo 1 > /sys/block/sdb/device/delete
	echo 1 > /sys/block/sdc/device/delete

	echo "- - -" > /sys/class/scsi_host/$host_sda/scan
	echo "- - -" > /sys/class/scsi_host/$host_sdb/scan
	echo "- - -" > /sys/class/scsi_host/$host_sdc/scan
fi

Attachment: publickey - hlarrive@pm.me - 0xE9429B87.asc
Description: application/pgp-keys

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: