Задать вопрос

При подключении HDD в raid пишет Device or resource busy — что делать?

Не могу подключить /dev/sda в рейд /dev/md0 (в котором есть уже /dev/sdb).
Пишет, что /dev/sda занят.

# fdisk -l /dev/sdb
Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000e5a86

Device Boot Start End Blocks Id System
/dev/sdb1 * 2048 1855469567 927733760 fd Linux raid autodetect

# fdisk -l /dev/sda
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
163 heads, 57 sectors/track, 210259 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005cffd

Device Boot Start End Blocks Id System
/dev/sda1 2048 1855469567 927733760 fd Linux raid autodetect

# cfdisk /dev/sda
Забавно, что:
sda1 swap (???)
sdb1 linux_raid_m

# cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdb1[0]
927602496 blocks super 1.2 [2/1] [U_]

# mount
/dev/md0p2 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)

# mdadm --add /dev/md0 /dev/sda1
mdadm: Cannot open /dev/sda1: Device or resource busy

# umount -l /dev/sda1
umount: /dev/sda1: not mounted

# umount -l /dev/sda
umount: /dev/sda: not mounted

# lsof | grep 'sda'
ничего не возвращает

Что делать? Как посмотреть, где устройство sda занято? Размонтировать его (или оно может быть занято - по другой причине) и добавить в рейд?
  • Вопрос задан
  • 18928 просмотров
Подписаться 4 Оценить Комментировать
Решения вопроса 1
Может там своп? Сделайте на всякий случай:
swapoff /dev/sda1

Ну и насчёт синтаксиса команды mdadm у меня сомнения. Согласно документации, нужно писать
mdadm /dev/md0 --add /dev/sda1
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
bk0011m
@bk0011m
Системный администратор
1. Частая ошибка при создании RAID устройств заключается в том, что dmraid-driver берет управление над всеми устройствами, которые должны были использоваться в новом RAID устройстве. Будет выдано сообщение об ошибке такого вида:
mdadm: Cannot open /dev/sdb1: Device or resource busy
Чтобы решить эту проблему, вы должны собрать новый образ initrd(initramfs) без dmraid-driver. Пример для ядра «2.6.18-8.1.6.el5»-kernel:
mkinitrd --without-dmraid /boot/NO_DMRAID_initrd-2.6.18-8.1.6.el5.img 2.6.18-8.1.6.el5
После этого, система должна быть перезагружена с новым initrd(initramfs). Отредактируйте ваш /boot/grub/grub.conf чтобы указать новый initrd(initramfs).
Если по каким-то причинам собрать новый образ initrd(initramfs) нет возможности, может помочь команда
dmsetup remove_all

Вот статья: ru.wikipedia.org/wiki/Mdadm
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы