В этой статье будет описано как происходит замена системного диска, то есть диска на котором находится система и загрузчик, на сервере Proxmox VE 9.0, если сервер был установлен на ZFS зеркало.
Введение
Я уже писал статью про установку сервера Proxmox VE на зеркало ZFS [Установка Proxmox VE на ZFS], а в этой статье опишу как происходит замена диска, если это потребуется.
После установки Proxmox VE на зеркало ZFS, в web-интерфейсе вы увидите такую схему разметки диска:

Оба диска: sda и sdb имеют по 3 раздела:
- 1 Раздел (BIOS boot). Это раздел mbr для загрузки с BIOS Legacy.
- 2 Раздел (EFI). Это раздел для загрузки с EFI.
- 3 Раздел (ZFS). Этот раздел с файловой системой ZFS находится в ZFS пуле (в зеркале).
Давайте откроем терминал, и получим информацию по ZFS пулу, и разметкам дисков.
Посмотрим статус ZFS пула (zpool):
zpool status
Получим примерно следующую информацию:
pool: rpool
state: ONLINE
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 ONLINE 0 0 0
scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 ONLINE 0 0 0
errors: No known data errors
Кстати, эту информацию лучше сохранить на будущее в какую-нибудь заметку по серверу.
Убедимся что раздел scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 это sda3. И scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 это sdb3:
ls -l /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi*-part3
Получим следующий вывод:
lrwxrwxrwx 1 root root 10 Aug 19 21:56 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 -> ../../sda3 lrwxrwxrwx 1 root root 10 Aug 19 21:56 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 -> ../../sdb3
Посмотрим на разметку обоих дисков.
Сначала на sda:
fdisk -l /dev/sda
Disk /dev/sda: 32 GiB, 34359738368 bytes, 67108864 sectors Disk model: QEMU HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 0CD42B9A-89D8-4CA7-88FB-9F20592AD2C2 Device Start End Sectors Size Type /dev/sda1 34 2047 2014 1007K BIOS boot /dev/sda2 2048 1050623 1048576 512M EFI System /dev/sda3 1050624 67108830 66058207 31.5G Solaris /usr & Apple ZFS
Затем на sdb:
fdisk -l /dev/sdb
Disk /dev/sdb: 32 GiB, 34359738368 bytes, 67108864 sectors Disk model: QEMU HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 6FE1AA45-CBAC-497A-BEF4-23232F0986D7 Device Start End Sectors Size Type /dev/sdb1 34 2047 2014 1007K BIOS boot /dev/sdb2 2048 1050623 1048576 512M EFI System /dev/sdb3 1050624 67108830 66058207 31.5G Solaris /usr & Apple ZFS
Замена диска
Итак, вынимаем 1 диск, после чего ломается ZFS массив, то есть zpool переходит в состояние DEGRADED:
zpool status
pool: rpool
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
config:
NAME STATE READ WRITE CKSUM
rpool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 ONLINE 0 0 0
9550485036186024522 UNAVAIL 0 0 0 was /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3
errors: No known data errors
Затем вставляем новый диск и видим что в системе появился новый пустой диск sdb:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 32G 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 8:2 0 512M 0 part └─sda3 8:3 0 31.5G 0 part sdb 8:16 0 32G 0 disk sr0 11:0 1 1024M 0 rom
Копируем таблицу разделов с размеченного диска на новый:
sfdisk --dump /dev/sda | sfdisk /dev/sdb
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 32G 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 8:2 0 512M 0 part └─sda3 8:3 0 31.5G 0 part sdb 8:16 0 32G 0 disk ├─sdb1 8:17 0 1007K 0 part ├─sdb2 8:18 0 512M 0 part └─sdb3 8:19 0 31.5G 0 part sr0 11:0 1 1024M 0 rom
Устанавливаем загрузчик на новый диск, для этого используем специальный инструмент от proxmox — proxmox-boot-tool:
proxmox-boot-tool format /dev/sdb2
proxmox-boot-tool init /dev/sdb2
proxmox-boot-tool refresh
Заменяем диск в rpool (вначале укажем неисправный диск, затем новый диск, то есть что и на что заменяем):
zpool replace rpool <id вышедшего из строя диска> <путь к новыому диску>
Пример:
zpool replace rpool 9550485036186024522 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3
Проверяем rpool:
zpool status
pool: rpool
state: ONLINE
scan: resilvered 1.74G in 00:00:03 with 0 errors on Wed Aug 20 10:29:39 2025
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 ONLINE 0 0 0
scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 ONLINE 0 0 0
errors: No known data errors
Тестирование
Пробуем перезагрузить сервер с двумя дисками. После перезагрузки ещё раз посмотрим zpool status:
zpool status
pool: rpool
state: ONLINE
scan: resilvered 1.74G in 00:00:03 with 0 errors on Wed Aug 20 10:29:39 2025
config:
NAME STATE READ WRITE CKSUM
rpool ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 ONLINE 0 0 0
scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 ONLINE 0 0 0
errors: No known data errors
Вынимаем старый диск и ещё раз перезагружаемся с 1 новым диском. Получилось! Вот статус zpool после перезагрузки:
zpool status
pool: rpool
state: DEGRADED
status: One or more devices could not be used because the label is missing or
invalid. Sufficient replicas exist for the pool to continue
functioning in a degraded state.
action: Replace the device using 'zpool replace'.
see: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J
scan: resilvered 1.74G in 00:00:03 with 0 errors on Wed Aug 20 10:29:39 2025
config:
NAME STATE READ WRITE CKSUM
rpool DEGRADED 0 0 0
mirror-0 DEGRADED 0 0 0
11689311769600860335 UNAVAIL 0 0 0 was /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3
scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 ONLINE 0 0 0
errors: No known data errors
Таким образом мы проверили загрузку с нового диска. Теперь можем вставлять старый диск и продолжать работать с сервером Proxmox VE.
Если понравилась статья, подпишись на мой канал в VK или Telegram.