Portál AbcLinuxu, 10. května 2025 11:33

Dotaz: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

26.12.2010 16:00 Begleiter | skóre: 47 | blog: muj_blog | Doma
Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Přečteno: 690×
Odpovědět | Admin

Mám v PC dva "identické" (tedy stejný výrobce a typ) pevné disky. A chtěl bych, aby první byl vždy /dev/sda a druhý vždy /dev/sdb. I tedy v případě, že bych třeba přidal do PC ještě jeden pevný disk.

Napadlo mě, že bych mohl vytvořit udev pravidlo založené na sériovém číslu prvního disku a sériovém číslu druhého disku.

Pomocí příkazu udevadm info --query=path --path=/sys/block/sda --attribute-walk jsem si zobrazil možné "match keys" pro /dev/sda. Ale nikde jsem nenašel "match key" operující se sériovým číslem disku!

Prosím tedy o radu, jak udělat, aby první disk byl vždy /dev/sda a druhý vždy /dev/sdb, i přestože v možných "match keys" chybí hodnota operující s sériovým číslem disku. Předem díky za reakce.


Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

26.12.2010 16:14 NN
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Odpovědět | | Sbalit | Link | Blokovat | Admin
A neni to podle zapojeni na desce a nastaveni v biosu ? Kdyz si predstavim, ze bootuju system z /sda a nejdnou se to jako obrati nebo co, tak to trochu nedava smysl..

NN
26.12.2010 16:21 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Kdyz si predstavim, ze bootuju system z /sda a nejdnou se to jako obrati nebo co, tak to trochu nedava smysl..

NN

Zásadně používám jak v /etc/fstab tak v /boot/grub/menu.lst koncept UUID nebo LABEL, takže problém nevidím.

26.12.2010 16:35 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Ještě dodám, že mám svépomocí vytvořenou bootovací flashku s Arch Linuxem. A chci opravdu, aby nedošlo ke změně písmenek, i kdybych v budoucnu přidal nový pevný disky, ať ho píchnu "kamkoli".

26.12.2010 17:37 ET
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Odpovědět | | Sbalit | Link | Blokovat | Admin
* pokud zachovas poradi disku na radici tak se to menit nebude...

* http://hackaday.com/2009/09/18/how-to-write-udev-rules/
26.12.2010 17:43 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Díky. To jsem potřeboval vědět.

Nicky726 avatar 26.12.2010 17:42 Nicky726 | skóre: 56 | blog: Nicky726
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nešlo by k tomu využít UUID? A nebylo by lepší používat rovnou to?
Enjoy the detours. There you’ll find the things more important than what you want. (Hunter x Hunter)
26.12.2010 17:52 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Problém je ten, že možná budu reklamovat základní desku, tudíž musím disky odpojit z desky. Až budu mít novou (opravenou) desku, tak bude trochu problém se "trefit" tak, aby zůstaly zachovány "písmenka", protože se de facto ty dva disky ničím neliší (koupil jsem najednou 2 kusy).

Jde mi o to, abych se třeba neúmyslně nespletl, když třeba jeden disk budu přerozdělovat a druhý zůstane, jak je.

26.12.2010 17:56 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Jde mi o to, abych se třeba neúmyslně nespletl, když třeba jeden disk budu přerozdělovat a druhý zůstane, jak je.

Ještě dodám, že mám vytvořený záchranný disk (na USB flashce) na bázi Arch Linuxu, ze kterého můžu např. nainstalovat Arch Linux, opravit intalaci Arch Linuxu. A tam mi jde hlavně o to, abych náhodou nespletl písmenka.

26.12.2010 17:57 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Děkuju.

26.12.2010 18:25 2X4B-523P | skóre: 38 | blog: Zelezo_vs_Debian
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
UUID je v disku, výměna desky by neměla UUID ovlivnit...
Nicky726 avatar 26.12.2010 18:40 Nicky726 | skóre: 56 | blog: Nicky726
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Pak se dají použít ještě vlastní labely.
Enjoy the detours. There you’ll find the things more important than what you want. (Hunter x Hunter)
26.12.2010 19:00 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Myslím, že jsem našel řešení. Kdyby se mi náhodou podařilo disky zapojit do desky v opačném pořádí, než jak byly dřív, tak bych to řešil pomocí udev následovně a bylo by :-)

KERNEL=="sda", SYMLINK+="pev_diskB"
KERNEL=="sdb", SYMLINK+="pev_diskA"
26.12.2010 19:02 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

A normálně bych tedy pracoval se zařízeními /dev/pev_diskA a /dev/pev_diskB.

26.12.2010 20:28 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Toto není řešení.

Toto pouze k zařízení sda vytvoří symlink pev_diskB, ale pokud disky přehodíš tak stejně sda bude vždy pev_diskB.

Jak už říkaly, musíš použít něco jedinečného takže UUID a nebo label, a toto použít v udev pravidlu a vytvořit symlink.

Ale podle mě řešíš blbosti, používej UUID a pak tě nezajímá jaké dev má ten HDD.

A pokud použiješ třeba fdisk tak ten se nepoužívá často a tam si musíš pohlídat který disk to je.
26.12.2010 20:55 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Máš pravdu s tím, že řeším blbosti. Dyž já jsem už takovej. :-) Moc díky za odpověď, která mě nakopla.

Řešení 1× (Begleiter (tazatel))
26.12.2010 21:12 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Jinak pokud by jsi chtěl odkazovat na disky tak použij soubory /dev/disk/by-uuid
Řešení 1× (Begleiter (tazatel))
Chytrex avatar 26.12.2010 21:20 Chytrex | skóre: 30 | Bohumín
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Nebo pokud chce něco čitelnějšího existuje i /dev/disk/by-label/ což je úplná pohodička když si člověk dá tu práci a pojmenuje si ty partitiony nějak rozumně.. např rootfs, varfs...
Hrdý člen KERNEL ULTRAS .:. define QUESTION ((bb) || !(bb)) .:. Odmítám vaši realitu a nahrazuji ji svou vlastní..
26.12.2010 21:25 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Předběhls mě. :-) Díky.

26.12.2010 21:22 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Díky. Pro mě je přijatelnější /dev/disk/by-label. UUID bývá hnusná posloupnost znaků, zatímco LABEL lze vytvořit tak, že se to dá jednodušše zapamatovat.

Řešení 1× (Begleiter (tazatel))
26.12.2010 21:27 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
A nebo pomocí /dev/disk/by-id prostě záleží zda potřebuješ přistupovat k oddílům (potom je nejlepší asi label) a nebo k celému disku potom asi ten /dev/disk/by-id ovšem nevím jak se /dev/disk/by-id zachová u uplně stejných disků stejné serie...
26.12.2010 21:44 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Jenom pro úplnost uvádím obsah /dev/disk/by-id:

lrwxrwxrwx 1 root root  9 26. pro 17.09 ata-ST31000528AS_9VP6YQ06 -> ../../sda
lrwxrwxrwx 1 root root 10 26. pro 17.09 ata-ST31000528AS_9VP6YQ06-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 26. pro 17.09 ata-ST31000528AS_9VP6YQ06-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 26. pro 17.09 ata-ST31000528AS_9VP6YQ06-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 26. pro 17.15 ata-ST31000528AS_9VP6YQ06-part4 -> ../../sda4
lrwxrwxrwx 1 root root  9 26. pro 17.09 ata-ST31000528AS_9VP6ZG2R -> ../../sdb
lrwxrwxrwx 1 root root 10 26. pro 17.15 ata-ST31000528AS_9VP6ZG2R-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  9 26. pro 17.09 scsi-SATA_ST31000528AS_9VP6YQ06 -> ../../sda
lrwxrwxrwx 1 root root 10 26. pro 17.09 scsi-SATA_ST31000528AS_9VP6YQ06-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 26. pro 17.09 scsi-SATA_ST31000528AS_9VP6YQ06-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 26. pro 17.09 scsi-SATA_ST31000528AS_9VP6YQ06-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 26. pro 17.15 scsi-SATA_ST31000528AS_9VP6YQ06-part4 -> ../../sda4
lrwxrwxrwx 1 root root  9 26. pro 17.09 scsi-SATA_ST31000528AS_9VP6ZG2R -> ../../sdb
lrwxrwxrwx 1 root root 10 26. pro 17.15 scsi-SATA_ST31000528AS_9VP6ZG2R-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  9 26. pro 17.09 wwn-0x5000c5002057d403 -> ../../sdb
lrwxrwxrwx 1 root root 10 26. pro 17.15 wwn-0x5000c5002057d403-part1 -> ../../sdb1
lrwxrwxrwx 1 root root  9 26. pro 17.09 wwn-0x5000c5002057e1ea -> ../../sda
lrwxrwxrwx 1 root root 10 26. pro 17.09 wwn-0x5000c5002057e1ea-part1 -> ../../sda1
lrwxrwxrwx 1 root root 10 26. pro 17.09 wwn-0x5000c5002057e1ea-part2 -> ../../sda2
lrwxrwxrwx 1 root root 10 26. pro 17.09 wwn-0x5000c5002057e1ea-part3 -> ../../sda3
lrwxrwxrwx 1 root root 10 26. pro 17.15 wwn-0x5000c5002057e1ea-part4 -> ../../sda4

Přičemž sériové číslo prvního disku je: 9VP6YQ06. Druhý má sériové číslo: 9VP6ZG2R.

26.12.2010 22:43 Petr Šobáň | skóre: 80 | blog: soban | Olomouc
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Takže si můžete udělat odkaz (link) První_disk -> /dev/disk/by-id/ata-ST31000528AS_9VP6YQ06 a Druhy_disk -> /dev/disk/by-id/ata-ST31000528AS_9VP6ZG2R.

A mělo by to být to co chcete. A místo /dev/sdX používat Prvni_disk, Druhy_disk.
26.12.2010 23:08 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Super! To je přesně ono, co jsem chtěl. Díky.

26.12.2010 18:04 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Asi to nakonec (pokud budu reklamovat tu desku) vyřeším, že si disky nějak označím (třeba první '1', druhý '2'). Jiné řešení nevidím.

26.12.2010 19:33 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Odpovědět | | Sbalit | Link | Blokovat | Admin

To je podle mě marná snaha. Možná by to šlo pomocí portů řadiče, ale pokud jde o externí disky, tam to samozřejmě aplikovat nelze.

Mám s udev pravidly důležitou, a přesto pouhým jedním slovem vyjádřitelnou zkušenost: nefungují. Například nedokážou zajistit ani takovou prkotinu, aby dvě síťová rozhraní od různých výrobců s různými MAC adresami byla pojmenovaná vždy eth{0,1} ve správném pořadí. Poté, co zoufalý správce něco takového zkusí (query, další úprava a kontrola pravidel, znova vygenerování bootovacího ramdisku, další restart...), velmi rychle pochopí, že jediným řešením je pevné pořadí zavádění modulů od těch síťovek. Je to smutné, ale je to tak.

U disků bohužel žádná podobná možnost není — oba obsluhuje jeden a tentýž kernelový modul.

26.12.2010 19:35 Begleiter | skóre: 47 | blog: muj_blog | Doma
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Díky za napsání zkušenosti s udev.

26.12.2010 21:14 ET
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
* me ten bind sitovek pres udev na RHELu jede a neni s tim sebemensi problem

* jedinej problem sem zaznamenal u VMWARE - kdyz se udela export/import virtalu, tak se to vyteli pac tomu vmware da jinou macku...
26.12.2010 21:55 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Taky je docela dobře možné, že to funguje jenom v RHEL. Těžko říct. Já jsem bohužel ještě neviděl na vlastní oči stroj, kde by udev pravidla fungovala.

26.12.2010 22:46 nelson | skóre: 17 | blog: jakesi_cosi
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Debian stable a udev pravidla na pojmenování síťovek fungují, žádný problém.
26.12.2010 23:25 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Já zase neviděl takový (s jádrem řady 2.6), kde by nefungovala.
27.12.2010 00:15 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

Tak já takový na ukázku mám, hned na 4 různých strojích. :-)

27.12.2010 00:17 Andrej | skóre: 51 | blog: Republic of Mordor
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)

A chybí mi tam „systém“. (ArchLinux s vanilla kernelem.) Udev normálně běží a funguje, „jenom“ ignoruje jakákoliv pravidla.

26.12.2010 23:23 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Aby byl první disk vždy /dev/sda a druhý vždy /dev/sdb (identické disky)
Odpovědět | | Sbalit | Link | Blokovat | Admin

Zkuste se podívat na doprovodné utilitky k udevu. Např. na OpenSuSE 11.3 mi funguje

KERNEL=="sd[a-z]*", PROGRAM=="scsi_id -g -d %N", RESULT=="SATA     SAMSUNG HD153WIS1UVJD1Z801585      ", NAME="sdb%n"
KERNEL=="sd[a-z]*", PROGRAM=="scsi_id -g -d %N", RESULT=="SATA     WDC WD15EADS-00     WD-WCAVY2757487", NAME="sdc%n"
KERNEL=="sd[a-z]*", PROGRAM=="scsi_id -g -d %N", RESULT=="SATA     WDC WD15EADS-00     WD-WCAVY0422919", NAME="sdd%n"
KERNEL=="sd[a-z]*", PROGRAM=="scsi_id -g -d %N", RESULT=="SATA     SAMSUNG HD154UIS1Y6J1LS806521      ", NAME="sde%n"
KERNEL=="sd[a-z]*", PROGRAM=="scsi_id -g -d %N", RESULT=="SATA     ST31500341AS               9VS29NRN", NAME="sdf%n"
KERNEL=="sd[a-z]*", PROGRAM=="scsi_id -g -d %N", RESULT=="SATA     WDC WD15EADS-00     WD-WCAVY0318396", NAME="sdg%n"

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.