Как изменить размер и уменьшить раздел BTRFS?

Как изменить размер и уменьшить раздел BTRFS?

У меня есть /homeраздел BTRFS, и мне нужно его уменьшить.

К сожалению, Gpartedдля этой ФС нет возможности изменения размера.

Могу ли я изменить его размер каким-либо другим способом, не теряя свои данные?

решение1

В соответствии сэта страницавbtrfs вики:

Чтобы уменьшить файловую систему на 4 ГиБ: btrfs filesystem resize -4g /mntили btrfsctl -r -4g /mntЗадайте размер ФС. Чтобы задать файловой системе определенный размер, опустите начальные + или - из размера.

Команды btrfsи btrfsctlв Ubuntu предоставляются пакетом под названием btrfs-utils, который можно установить в Центре программного обеспечения. Эти команды запускаются в Терминале (Ctrl+Alt+T). Замените 4gна то, насколько вы действительно хотите уменьшить раздел, и /mntна точку монтирования раздела. Например, чтобы уменьшить раздел btrfs, смонтированный в /media/Alpha, на 500 МиБ, вы должны выполнить:

btrfs filesystem resize -500m /media/Alpha

Или:

btrfsctl -r -500m /media/Alpha

Если предположить, что правила изменения размера файловых систем btrfs такие же, как и для других файловых систем, следует избегать изменения размера раздела, который находится на том же физическом диске, что и работающая система. Поэтому, если необходимо, загрузитесь с работающей системы, чтобы изменить размер раздела на диске, на котором установлена ​​ваша система Ubuntu. (Это также относится к изменению размера, выполненному в GParted.)

Если некоторые утилиты или приложения не видят результатов операции изменения размера при ее выполнении, перезагрузка будет хорошей идеей.

Смотрите btrfsиbtrfsctl страницы руководствадля более подробной информации об использовании этих команд. И, надеюсь,btrfs викискоро восстановлюсь.

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

решение2

СогласноСтраница возможностей GParted, btrfs shrink поддерживается. Если опция недоступна, установка пакета btrfs-tools может исправить это. Если это не сработает, это может быть связано с тем, что Ubuntu включает в себя более старую версию GParted, в этом случае вы можете использовать GParted Live CD:

http://gparted.sourceforge.net/livecd.php

(что также является способомUbuntu рекомендуетиспользую его в любом случае)

решение3

Это не прямой ответ на вопрос, он для людей, которые попадают сюда из поиска Google,интересно, можно ли сделать онлайн-сжатие /- да, можно

Мне нужно было больше подкачки, а btrfs не позволяет запускать подкачку из файла, поэтому мне пришлось сжать / и пересоздать разделы (осторожно). Вот что я сделал, имея в виду, что мне нужны дополнительные 64G подкачки:

sudo btrfs filesystem resize -96g /
sudo fdisk /dev/nvme0n1

У меня было 2 раздела, 1 для / и другой для swap. Удалил оба, затем создал заново (до перезагрузки!). Старый размер раздела 1 был 867,5 ГБ, а новый — 803,5, что дало дополнительные 64 ГБ для раздела swap. Когда он спросит, хотите ли вы перезаписать подпись btrfs, скажите НЕТ! Если вы делаете swap, как я, вам нужно будет изменить «type» раздела swap на «82» либо при создании, либо впоследствии с помощью команды «t»

После перезагрузки я запустил

sudo btrfs filesystem resize max /

df -hзатем сообщает:

/dev/nvme0n1p1  804G  498G  305G  63% /

Итак, причина, по которой я изначально уменьшил файловую систему на 96 ГБ, заключалась в том, что разные инструменты немного по-разному вычисляют G и M, поэтому я хотел быть уверенным, что файловая система не будет затерта новым разделом, который будет немного меньше файловой системы на нем!

После перезагрузки, если вы изменили раздел подкачки, вам также нужно будет запустить mkswap на нем, например, sudo mkswap /dev/nvme0n1p2и либо «swapon», либо перезагрузиться еще раз.

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

решение4

Используйте эту команду для установки btrfsподдержки в GParted:

sudo apt install btrfs-progs

После этого вы можете легко сжать и изменить размер раздела в GParted. Таким образом, вы можете выполнять всю работу в графическом интерфейсе. Командная строка не нужна

Связанный контент