На устройстве не осталось места Oracle Linux

На основании предоставленной информации трудно сказать, что именно происходит, ваше предположение о проблеме с UUID, скорее всего, верно.

Вот как я могу выполнить вашу задачу:

  • Очистите NVME, используя dd и /dev/zero. Достаточно использовать bs=512 count=4
  • Создайте новые разделы и файловые системы на NVME.
  • Загрузитесь в действующую систему.
  • Скопируйте данные из разделов SSD в разделы NVME.
  • Установите Grub на NVME, обновите /etc/fstab, обновите grub.cfg.

Для последнего пункта я рекомендую следующий метод:

  • Находясь в действующей системе, создайте новый «корневой» каталог и смонтируйте туда корневую файловую систему NVME.
  • mount --bind/dev, /proc, /sysв новый «корень». Например.mount --bind /dev /mnt/nvmeroot/dev
  • chroot в новый «корень», используя:chroot /mnt/nvmeroot/ /bin/bash
  • Используйте blkid, чтобы узнать UUID новых разделов, соответствующим образом обновите /etc/fstab.
  • Установите grub на nvme, например. используяgrub-install
  • Обновите файл конфигурации grub с помощьюupdate-grub or grub2-mkconfig
  • Выйдите из chroot.
  • Отмонтировать привязанные монтирования и новый «корень».
  • Перезагрузка из NVME.

Если что-то не работает:

  • Используйте кнопкуe(редактировать )в grub и удалите аргументы загрузки Linux в качестве параметров quiet, splash, rhgb, чтобы вы могли видеть сообщения об ошибках во время загрузки.
  • Перезагрузитесь, используя действующую систему, смонтируйте новый «корень», выполните монтирование с привязкой, выполните chroot и устраните проблему, попробуйте еще раз.
4
06.03.2020, 09:05
1 ответ

Согласно выходным данным lsblk --fs, ваш /dev/vda2содержит файловую систему btrfs.

Это современная файловая система, которая может автоматически создавать иноды по -запросу и не имеет ограничений на количество инодов, кроме доступного места на диске. Вот почему отслеживание количества инодов на самом деле не имеет смысла для файловой системы типа btrfs, и поэтому оно возвращает все нули для любых запросов статистики инодов.

Файловая система XFS (, как и файловая система /bootна вашем /dev/vda1дисковом устройстве ), также может создавать индексные дескрипторы по запросу -, но существует ограничение, которое устанавливается во время создания файловой системы и выражается как процент от общей емкости файловой системы. Ограничение по умолчанию позволяет 25% емкости файловой системы быть inodes, что означает огромное количество крошечных файлов. Это ограничение imaxpctможно проверить с помощью команды xfs_infoв системе, использующей XFS в качестве корневой файловой системы :

.
# xfs_info /
meta-data=/dev/mapper/vgsys-root isize=512    agcount=4, agsize=488192 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=0, rmapbt=0
         =                       reflink=0
data     =                       bsize=4096   blocks=1952768, imaxpct=25     <--- Here!
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

Из-за этого в файловой системе XFS статистика индексных дескрипторов все еще может быть значимой, хотя для того, чтобы они стали важными, требуется довольно особая ситуация.Если текущее общее количество инодов в файловой системе XFS достигнуто, и это число все еще меньше процентного предела, установленного значением imaxpct, и есть свободное место на диске, общее количество инодов в файловой системе XFS просто расти автоматически.

Но ваша файловая система XFS — /boot, которая обычно имеет очень ограниченное количество файлов, так что эта проблема может относиться только к вам, если вы каким-то образом случайно скопировали огромное количество крошечных файлов в /boot, а сейчас так не выглядит.

Фактическая ошибка «Нет свободного места на устройстве»

Ваши результаты df -hи df -iвыглядят нормально. Но на btrfsони не всегда могут рассказать всю историю. В зависимости от того, какая версия btrfs-progsиспользуется в вашей системе, существуют две команды, которые могут предоставить дополнительную информацию о дисковом пространстве, доступном в файловой системе btrfs.

С btrfs-progsстарше версии 3.18:

btrfs fi df /

С btrfs-progsверсии 3.18 или новее:

sudo btrfs fi usage /

btrfsпредставляет собой сложную файловую систему, которая по существу включает в себя функции LVM и программного RAID, поэтому ее распределение дискового пространства может быть более сложным, чем может отобразить обычная команда df.

Для получения дополнительной информации см. вики BTRFS :.https://btrfs.wiki.kernel.org/index.php/FAQ#or_My_filesystem_is_full.2C_and_I.27ve_put_almost_nothing_into_it.21

Если конкретные команды btrfs -, упомянутые выше, указывают на то, что у вас на самом деле не хватает места в вашей корневой файловой системе, эта веб-страница может оказаться полезной:

https://ohthehugemanatee.org/blog/2019/02/11/btrfs-out-of-space-emergency-response/

По сути, вам может понадобиться запустить btrfs balance start /, возможно, с опцией -dusage=<some percentage value>, чтобы свести к минимуму время и количество требуемых операций записи. Но если в вашей BTRFS уже нет доступного места, вы не сможете запустить эту команду. В этом случае вам может понадобиться сначала расширить файловую систему на другое дисковое устройство.

1
28.04.2021, 23:21

Теги

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