Когда устанавливаешь Proxmox VE (PVE) с ISO-файла, разделы загрузки занимают всего 512 МБ (нет опций для изменения). Это может вызвать проблемы, потому что не удается сохранить слишком много старых версий ядра. Ядро становится больше при системных обновлениях, и для удобства отката в случае ошибок в новом ядре сохраняются несколько старых версий. Но 512 МБ быстро заполняются, и когда заполняется диск, ты сталкиваешься с сообщением об ошибке "диск заполнен". Это приводит к бесконечному циклу `apt`, и команды вроде `apt remove`, `apt purge` или `apt -f install` не помогают.
Попробуй команду `fdisk -l` для диска:
```bash
fdisk -l /dev/sde
```
Результат:
```
Disk /dev/sde: 232.89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 870
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: 60A8635D-9CFB-4440-AFEC-F8A5BEDFB0F9
Device Start End Sectors Size Type
/dev/sde1 34 2047 2014 1007K BIOS boot
/dev/sde2 2048 1050623 1048576 512M EFI System
/dev/sde3 1050624 488397134 487346511 232.4G Solaris /usr & Apple ZFS
```
Как видно из информации о разделе `/dev/sde2` (512 МБ), эту часть диска нельзя увидеть с помощью `df -h`. Поэтому, нужно ее смонтировать:
```bash
mount /dev/sde2 /mnt/temp/
```
А затем просмотреть содержимое:
```bash
ls -al /mnt/temp/EFI/proxmox/
```
Результат:
```
drwxr-xr-x 2 root root 4.0K May 19 01:58 6.8.12-10-pve/
drwxr-xr-x 2 root root 4.0K Jun 24 10:33 6.8.12-11-pve/
```
С помощью `du -hd 1 temp/EFI/proxmox/` выясняем размеры:
```
153M temp/EFI/proxmox/6.8.12-11-pve
153M temp/EFI/proxmox/6.8.12-10-pve
306M temp/EFI/proxmox/
```
Итак, две версии ядра занимают 306 МБ. Версия `6.8.12-11-pve` используется, а `6.8.12-10-pve` – старая. Чтобы выбраться из цикла `apt`, можно освободить место, не удаляя файлы полностью. Например, можно перенаправить вывод в пустой файл:
```bash
echo > /mnt/temp/EFI/proxmox/6.8.12-10-pve/initrd.img-6.8.12-10-pve
```
Важно: не просто копируй эту команду, замени `6.8.12-10-pve` на имя *твоей* старой версии ядра. Это позволит выйти из цикла `apt`, после чего проблему можно будет исправить командой `apt -f install`.
Если ты еще не попал в цикл `apt`, то старые версии можно удалить так:
```bash
aptitude search 6.8.12-10
```
Результат:
```
v linux-headers-6.8.12-10-pve-amd64 -
v linux-image-6.8.12-10-pve-amd64 -
p proxmox-headers-6.8.12-10-pve - Proxmox Kernel Headers
p proxmox-kernel-6.8.12-10-pve - Proxmox Kernel Image
i A proxmox-kernel-6.8.12-10-pve-signed - Proxmox Kernel Image (signed)
p proxmox-kernel-6.8.12-10-pve-signed-template - Template for signed kernel package
v pve-headers-6.8.12-10-pve -
v pve-kernel-6.8.12-10-pve -
```
Затем удалить пакет:
```bash
apt purge proxmox-kernel-6.8.12-10-pve-signed
```
И проверить освободилось ли место:
```bash
df -h
```
После чего можно отмонтировать раздел:
```bash
umount /mnt/temp
```
Для китайских читателей эта статья доступна на китайском языке.
Попробуй команду `fdisk -l` для диска:
```bash
fdisk -l /dev/sde
```
Результат:
```
Disk /dev/sde: 232.89 GiB, 250059350016 bytes, 488397168 sectors
Disk model: Samsung SSD 870
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: 60A8635D-9CFB-4440-AFEC-F8A5BEDFB0F9
Device Start End Sectors Size Type
/dev/sde1 34 2047 2014 1007K BIOS boot
/dev/sde2 2048 1050623 1048576 512M EFI System
/dev/sde3 1050624 488397134 487346511 232.4G Solaris /usr & Apple ZFS
```
Как видно из информации о разделе `/dev/sde2` (512 МБ), эту часть диска нельзя увидеть с помощью `df -h`. Поэтому, нужно ее смонтировать:
```bash
mount /dev/sde2 /mnt/temp/
```
А затем просмотреть содержимое:
```bash
ls -al /mnt/temp/EFI/proxmox/
```
Результат:
```
drwxr-xr-x 2 root root 4.0K May 19 01:58 6.8.12-10-pve/
drwxr-xr-x 2 root root 4.0K Jun 24 10:33 6.8.12-11-pve/
```
С помощью `du -hd 1 temp/EFI/proxmox/` выясняем размеры:
```
153M temp/EFI/proxmox/6.8.12-11-pve
153M temp/EFI/proxmox/6.8.12-10-pve
306M temp/EFI/proxmox/
```
Итак, две версии ядра занимают 306 МБ. Версия `6.8.12-11-pve` используется, а `6.8.12-10-pve` – старая. Чтобы выбраться из цикла `apt`, можно освободить место, не удаляя файлы полностью. Например, можно перенаправить вывод в пустой файл:
```bash
echo > /mnt/temp/EFI/proxmox/6.8.12-10-pve/initrd.img-6.8.12-10-pve
```
Важно: не просто копируй эту команду, замени `6.8.12-10-pve` на имя *твоей* старой версии ядра. Это позволит выйти из цикла `apt`, после чего проблему можно будет исправить командой `apt -f install`.
Если ты еще не попал в цикл `apt`, то старые версии можно удалить так:
```bash
aptitude search 6.8.12-10
```
Результат:
```
v linux-headers-6.8.12-10-pve-amd64 -
v linux-image-6.8.12-10-pve-amd64 -
p proxmox-headers-6.8.12-10-pve - Proxmox Kernel Headers
p proxmox-kernel-6.8.12-10-pve - Proxmox Kernel Image
i A proxmox-kernel-6.8.12-10-pve-signed - Proxmox Kernel Image (signed)
p proxmox-kernel-6.8.12-10-pve-signed-template - Template for signed kernel package
v pve-headers-6.8.12-10-pve -
v pve-kernel-6.8.12-10-pve -
```
Затем удалить пакет:
```bash
apt purge proxmox-kernel-6.8.12-10-pve-signed
```
И проверить освободилось ли место:
```bash
df -h
```
После чего можно отмонтировать раздел:
```bash
umount /mnt/temp
```
Для китайских читателей эта статья доступна на китайском языке.
