Стоит задача поменять диски в этом RAID1 на более ёмкие, увеличив при этом размер раздела с данными.
Изучил несколько HOWTO; везде написано (например), что сначала разделы нужно менять на дисках, то есть:
Код: Выделить всё
fdisk /dev/sdX
и после запускать процесс расширения RAID (mdadm --grow /dev/mdN --size=max).
Затык в том, что в моём случае разделы, которые монтируются в /, home, swap — созданы внутри рейда, на каждом же диске лишь один раздел размером во весь диск:
Код: Выделить всё
# fdisk -l /dev/sda
Диск /dev/sda: 1000.2 Гб, 1000204886016 байт
255 головок, 63 секторов/треков, 121601 цилиндров, всего 1953525168 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 4096 байт
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Идентификатор диска: 0x00000000
Устр-во Загр Начало Конец Блоки Id Система
/dev/sda1 * 2048 1953523711 976760832 fd Автоопределение Linux raid
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931,5G 0 disk
└─md0 9:0 0 931,4G 0 raid1
├─md0p1 259:0 0 37,3G 0 md /
├─md0p2 259:1 0 1K 0 md
├─md0p5 259:2 0 9,3G 0 md [SWAP]
└─md0p6 259:3 0 884,8G 0 md /home
sdb 8:16 0 931,5G 0 disk
└─md0 9:0 0 931,4G 0 raid1
├─md0p1 259:0 0 37,3G 0 md /
├─md0p2 259:1 0 1K 0 md
├─md0p5 259:2 0 9,3G 0 md [SWAP]
└─md0p6 259:3 0 884,8G 0 md /home
# mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Apr 9 19:29:38 2015
Raid Level : raid1
Array Size : 976629568 (931.39 GiB 1000.07 GB)
Used Dev Size : 976629568 (931.39 GiB 1000.07 GB)
Raid Devices : 2
Total Devices : 2
Persistence : Superblock is persistent
Update Time : Mon Dec 25 00:47:21 2017
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Name : service:0
UUID : e00bad9f:d733d92e:89edf7da:e29a5b00
Events : 5633678
Number Major Minor RaidDevice State
2 8 0 1 active sync /dev/sda
3 8 16 0 active sync /dev/sdb
# mount -l
/dev/md0p1 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)
none on /sys/fs/pstore type pstore (rw)
/dev/md0p6 on /home type ext4 (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=user)
(Выше, чтобы не запутать, привёл код при работе рейда со старыми дисками. Всё равно при копировании их таблицы разделов на новые диски (большего размера) ситуация, конечно, не меняется.)
При попытке изменить раздел внутри рейда получаю ошибку об отстутствующей таблице разделов:
Код: Выделить всё
# fdisk /dev/md0p6
Устройство не содержит ни верной таблицы разделов DOS, ни метки диска Sun, SGI или OSF
Building a new DOS disklabel with disk identifier 0x1fca23fb.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.
Предупреждение: неверный флаг 0x0000 таблицы разделов 4 будет исправлен записью
The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.
То есть путь этот, похоже, неверный.
Как правильно в моём случае изменить раздел при переезде RAID1 на диски большего объёма?
Интересует /dev/md0p6, примонтированный в /home.