Одним из нужных и полезных знаний, которые необходимо знать администратору — как добавить жесткие диски в систему на лету. Данная тема особенно актуальна сейчас — в связи с широким распространением виртуализации. Как правило в процессе определения нового диска необходима перезагрузка системы, но существует и альтернативный способ — без перезагрузки.
Для начала посмотрим какие диски видит система:
[testhost]# fdisk -l Disk /dev/sda: 10.7 GB, 10737418240 bytes 255 heads, 63 sectors/track, 1305 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000bceec Device Boot Start End Blocks Id System /dev/sda1 * 1 26 204800 83 Linux Partition 1 does not end on cylinder boundary. /dev/sda2 26 1175 9231360 83 Linux /dev/sda3 1175 1306 1048576 82 Linux swap / Solaris
Как видно из вывода, необходимого нам диска нет. Поможем системе распознать новый диск с помощью следующей команды:
[testhost]# echo - - - > /sys/class/scsi_host/host host0/ host1/ host2/ У нас 3 хоста, на котором может находиться наш новый жесткий диск. [testhost]# echo - - - > /sys/class/scsi_host/host0/scan [testhost]# echo - - - > /sys/class/scsi_host/host1/scan [testhost]# echo - - - > /sys/class/scsi_host/host2/scan
Снова запрашиваем «fdisk -l», и как видим вывод поменялся, добавился диск /dev/sdb:
[testhost]# fdisk -l ... Disk /dev/sdb: 53.7 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders
«dmesg | tail» аналогично покажет нам новый найденный диск
Sep 23 12:15:56 testhost kernel: scsi 2:0:1:0: Direct-Access VMware Virtual disk 1.0 PQ: 0 ANSI: 2 Sep 23 12:15:56 testhost kernel: scsi target2:0:1: Beginning Domain Validation Sep 23 12:15:56 testhost kernel: scsi target2:0:1: Domain Validation skipping write tests Sep 23 12:15:56 testhost kernel: scsi target2:0:1: Ending Domain Validation Sep 23 12:15:56 testhost kernel: scsi target2:0:1: FAST-40 WIDE SCSI 80.0 MB/s ST (25 ns, offset 127) Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: Attached scsi generic sg2 type 0 Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: [sdb] 104857600 512-byte logical blocks: (53.6 GB/50.0 GiB) Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: [sdb] Write Protect is off Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: [sdb] Cache data unavailable Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: [sdb] Assuming drive cache: write through Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: [sdb] Cache data unavailable Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: [sdb] Assuming drive cache: write through Sep 23 12:15:56 testhost kernel: sdb: unknown partition table Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: [sdb] Cache data unavailable Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: [sdb] Assuming drive cache: write through Sep 23 12:15:56 testhost kernel: sd 2:0:1:0: [sdb] Attached SCSI disk
Далее все просто: создаем новый раздел через fdisk и форматируем командой mkfs.ext4 (если диск по объему достаточно большого объема, больше 2Tb, то рекомендую ознакомиться с постом про большие диски в Linux)
Основа сделана, осталось добавить созданный диск в /etc/fstab.
Для этого нам необходимо узнать uuid диска.
Тут существует подводный камень: при миграции виртуалки методом копирования (клонирования) uuid диска может смениться, без указания uuid в fstab существует вероятность, что диски на новом месте встанут в другом порядке, т.е. sda станет sdb.
Узнать uuid можно двумя командами:
[testhost ~]# ls -l /dev/disk/by-uuid/ total 0 lrwxrwxrwx 1 root root 10 Sep 10 15:58 09411d25-...-ed51d66071c4 -> ../../sda3 lrwxrwxrwx 1 root root 10 Sep 10 15:58 26315ab0-...-57bbc1f00849 -> ../../sda2 lrwxrwxrwx 1 root root 10 Sep 23 13:36 c6f6cfe5-...-1e8f4d1c64d3 -> ../../sdb1 lrwxrwxrwx 1 root root 10 Sep 10 15:58 cfc3f31f-...-200cacf7df7b -> ../../sda1 Или [testhost]# blkid /dev/sda1: UUID="cfc3f31f-...-200cacf7df7b" TYPE="ext3" /dev/sda2: UUID="26315ab0-...8-9780-57bbc1f00849" TYPE="ext4" /dev/sda3: UUID="09411d25-...-9102-ed51d66071c4" TYPE="swap" /dev/sdb1: UUID="c6f6cfe5-...-81d1-1e8f4d1c64d3" TYPE="ext4"
Добавляем необходимые строчки в fstab, делаем mount, в моем случае mount /mnt/sdb1, и если все верно в выводе команды df мы увидим смонтированный раздел:
[testhost]# grep "sdb" fstab UUID=c6f6cfe5-...-1e8f4d1c64d3 /mnt/sdb1 ext4 defaults 1 1
[testhost]# mount /mnt/sdb1
[testhost]# df -H
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 9.4G 1.4G 7.6G 15% /
tmpfs 2.1G 0 2.1G 0% /dev/shm
/dev/sda1 204M 100M 94M 52% /boot
/dev/sdb1 53G 189M 50G 1% /mnt/sdb1
На сегодня все. Встретимся в сети!