![Как изменить размер и уменьшить раздел BTRFS?](https://rvso.com/image/1036647/%D0%9A%D0%B0%D0%BA%20%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B8%D1%82%D1%8C%20%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80%20%D0%B8%20%D1%83%D0%BC%D0%B5%D0%BD%D1%8C%D1%88%D0%B8%D1%82%D1%8C%20%D1%80%D0%B0%D0%B7%D0%B4%D0%B5%D0%BB%20BTRFS%3F.png)
У меня есть /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
. Таким образом, вы можете выполнять всю работу в графическом интерфейсе. Командная строка не нужна