Mám stejný problém s výměnou sda
a sdb
název disku. Pokusil jsem se napsat některá podobná pravidla udev s výše uvedeným příspěvkem na svých vlastních serverech HP. Ale použil jsem velikost disku v /etc/udev/rules.d/00-corrections.rules
KERNEL=="sd?", ATTR{size}=="781357232", NAME="sda"
KERNEL=="sd??", ATTRS{size}=="781357232", NAME="sda%n"
KERNEL=="sda", ATTR{size}=="3125515952", NAME="sdb"
KERNEL=="sda?", ATTRS{size}=="3125515952", NAME="sdb%n"
Před tímto pravidlem zjistím velikost zařízení podle cat /sys/block/sda/size
a cat /sys/block/sdb/size
který je popsán zde :Vyhledání informací ze sysfs.
Ale když se pokusím otestovat pravidlo udev pomocí udevadm test /sys/block/sdb
Ve výstupu vidím tento řádek:
NAME="sda" ignorováno, uzly zařízení jádra nelze přejmenovat; opravte to prosím v /etc/udev/rules.d/00-corrections.rules:1
Mám ubuntu 18.04 a zjistil jsem, že toto není možné (alespoň v ubuntu 18.04) na základě tohoto příspěvku:Existuje způsob, jak změnit názvy zařízení v adresáři /dev?
V dnešní době se linuxové jádro dynamicky zaplňuje /dev/ podle pravidel UDEV.
Dovolte mi nejprve vysvětlit, jak fungují soubory zařízení. Každý soubor zařízení, obvykle soubor blokového zařízení, má hlavní a vedlejší číslo. Tato čísla ve skutečnosti popisují, na jaké zařízení soubor ukazuje. Jméno v tom nehraje žádnou roli. Podívejme se na náš konkrétní případ disků:
# ls -l sd*
brw-rw---- 1 root disk 8, 0 Aug 22 15:45 sda
brw-rw---- 1 root disk 8, 1 Aug 22 15:45 sda1
brw-rw---- 1 root disk 8, 2 Aug 22 15:45 sda2
brw-rw---- 1 root disk 8, 3 Aug 22 15:45 sda3
brw-rw---- 1 root disk 8, 5 Aug 22 15:45 sda5
brw-rw---- 1 root disk 8, 6 Aug 22 15:45 sda6
Zde vidíte, že můj první disk má různé oddíly a že jsem bootoval 22. srpna v 15 hodin, což je doba, kdy jádro vytvořilo soubory podle pravidel. Můžete také vidět, že hlavní číslo je 8 a vedlejší čísla se používají pro přístup k oddílům (0 ukazuje na celý disk). Písmeno 'b' na začátku každého řádku říká, že každý z nich je speciální soubor "blokového zařízení".
Jak jsem řekl, jádro vytváří soubory dynamicky „dnes“. Nebylo tomu tak vždy a není tomu tak ani na jiných unixových systémech. Tam by se soubory vytvořily staticky a uživatel by tyto soubory vytvořil nebo s nimi manipuloval.
Je dokonale možné vytvořit si vlastní soubory zařízení s vlastním jménem a hlavními/vedlejšími čísly. Viz mknod (man mknod
) pro to. Po opětovném spuštění však vaše vlastní soubory zmizí.
Druhou možností je změna pravidel UDEV. Pravidla budou zpracována během spouštění systému a zaručí vám trvale konzistentní chování. Dobrý průvodce těmito pravidly lze nalézt zde:http://www.reactivated.net/writing_udev_rules.html
Uvidíte, že je možné definovat pravidlo, které vytvoří „sda*“ na základě konkrétních informací o hardwaru, které odpovídají vašemu zařízení. Původní pravidla, která by vytvořila sda, budete muset nahradit vašimi. Jak to funguje, závisí na vaší distribuci.
Vzhledem k tomu, že se domnívám, že je to pro nováčka nebezpečná záležitost, nebudu vám vysvětlovat konkrétní kroky; dokument, na který jsem odkazoval výše, vám poskytne všechny informace, které potřebujete, a měli byste si jej skutečně přečíst celý.