MountByLabel

Материал из OpenWiki
Перейти к: навигация, поиск

Думаю, многие сталкивались с проблемой нескольких жестких дисков на сервере. При добавлении/удалении/перетыкании хардов, их имена (/dev/sd*; /dev/hd*) могут перепутаться, и система просто не загрузиться.

Существует достаточно простое и элегантное решение. Допустим, есть /dev/hda1, /dev/hdb1, /dev/sda1, /dev/sdb1, /dev/sdc1 с разными файловыми системами. Чтобы при любых манипуляциях можно было однозначно определить нужный хард, зададим им метки (labels).

Для ext3:

tune2fs -L "название_раздела" /dev/девайс
tune2fs -L data1 /dev/hda1
tune2fs -L data2 /dev/hdb1
tune2fs -L data3 /dev/sda1

Для reiserfs:

reiserfstune -l "название_раздела" /dev/девайс
reiserfstune -l data4 /dev/sdb1

Для xfs:

xfs_admin -L "название_раздела" /dev/девайс
xfs_admin -L data5 /dev/sdc1

Перезагружаемся, смотрим "ls /dev/disk/by-label/": data1 data2 data3 data4 data5

Теперь как бы мы ни перетыкали диски, мы всегда сможем найти нужный: label's, в отличие от имён /dev/hd* & /dev/sd*, меняться не будут.

И последнее, что осталось - запихнуть всё это хозяйство в fstab. В принципе, в этом нет ничего сложного. Различается только первая колонка: вместо "/dev/hda1" пишем "/dev/disk/by-label/data1", и т.д.

кусок /etc/fstab:

/dev/disk/by-label/data1 /mnt/data1 ext3 noatime 0 1
/dev/disk/by-label/data2 /mnt/data2 ext3 noatime 0 1
/dev/disk/by-label/data3 /mnt/data3 ext3 noatime 0 1
/dev/disk/by-label/data4 /mnt/data4 reiserfs noatime 0 1
/dev/disk/by-label/data5 /mnt/data5 xfs noatime 0 1

Особенно этот способ юзабелен с многохардовыми фтп-шниками ;)