Вы используете только около 7,4 ГБ на / и имеете 79 ГБ свободно в LVM, так что да, вы можете создать новый LV для /
(и еще один для / var
) и скопируйте в них файлы из / и / var. Для копий рекомендую использовать rsync
.
например.с новыми / и / var, смонтированными как / target и / target / var:
rsync --archive --sparse --one-file-system --delete-during --delete-excluded \
--force --numeric-ids --hard-links / /var /target/
, необязательно, также используйте эти параметры:
--human-readable --human-readable --verbose --stats --progress
Вы можете повторять это так часто, как захотите, пока у вас не будет достаточно свободного времени для перезагрузки с одним пользователем mode и завершите процедуру, которая заключается в следующем:
/
и / boot
RW, если они еще не подключены RW / target
и / target / var
как указано выше для i в proc dev sys dev / pts boot; сделать mount -o bind / $ i / target / $ i; done
chroot / target
/ etc / fstab
и изменение устройства / uuid / labels для / и / var update-grub
для i в proc sys dev / pts dev boot var /; сделать umount / target / $ i; done
Если после перезагрузки все работает нормально, вы можете добавить / dev / sda2
(старый корневой раздел) в LVM VG datvg
.
При желании вы также можете создать LV для / boot
(смонтированный как / target / boot
) и выполнить его rsync и т. Д. Вместе с /
и / var
(кроме удаления загрузки из для
цикла вокруг mount -o bind
, вам не нужен исходный / boot
монтируется привязкой поверх / target / boot
).
Затем создайте LV для свопа, и вы можете добавить весь / dev / sda
в LVM VG (удалите все разделы на sda, создайте / dev / sda1
и добавить это).
Кстати, другой способ сделать это - загрузиться с компакт-диска Clonezilla или USB-накопителя, создать разделы LVM и использовать cz для клонирования / и / загрузки в LVM. Прошло много времени с тех пор, как я делал это в последний раз, поэтому я не могу точно вспомнить, но вам, вероятно, все равно придется смонтировать / target (и / target / var, / target / boot), выполнить привязку-монтирование и отредактировать fstab и update-grub
.
Фактически, указанные выше циклы for
скопированы и немного изменены из псевдонимов, созданных сценарием настройки для моего tftp
-загрузочного образа clonezilla
... так что можно поспорить, что это необходимо.
Он загружается с такими псевдонимами, доступными для корневой оболочки:
alias prepare-chroot-target='for i in proc dev sys dev/pts ; do mount -o bind /$i /target/$i ; done'
Если вы не используете LVM, потому что вам нужно создать разделы для виртуальных машин (разделы и большинство других блоков -устройства быстрее, чем .qcow2 или необработанные файлы для виртуальных машин), я рекомендую использовать btrfs вместо LVM. Он намного более гибкий (и, IMO, проще в использовании), чем LVM - например, Увеличить (или уменьшить) выделение для подтомов - тривиально.
btrfs
имеет очень полезную возможность выполнять преобразование на месте из ext3 или ext4 в btrfs.
К сожалению, на этой вики-странице теперь есть предупреждение:
Предупреждение: Начиная с ядер 4.0 эта функция не часто используется и не тестируется, и были некоторые сообщения о том, что преобразование работает ненадежно. Не стесняйтесь попробовать, но убедитесь, что у вас есть резервные копии.
Вы можете выполнить преобразование на месте /
, перенести свои каталоги / var / foobar *
в btrfs, а затем добавить половину sdb в btrfs / (как зеркало RAID-1), а вторую половину используйте для дополнительного хранилища (также btrfs) или для LVM. Жаль, что у вас нет пары дисков одинакового размера.
Если вы решите не выполнять преобразование на месте (возможно, разумно), процедура будет аналогична описанному выше методу rsync и т. Д., За исключением того, что вместо создания разделов LVM для / target / {, boot, var}
вы создаете том btrfs для / target
и вложенные тома для / target / boot
и / target / var
. Вам понадобится отдельный раздел подкачки (или забудьте о подкачке диска и используйте zram
, блочное устройство сжатого ОЗУ основного ядра.или добавьте больше ОЗУ, чтобы не менять местами. или и то, и другое.)
Но было бы проще сделать резервную копию ваших данных и файлов конфигурации, загрузить установочный компакт-диск или USB для вашего дистрибутива, переустановить с нуля (после тщательного планирования структуры разделов), а затем восстановить выбранные части ваша резервная копия (/ home, / usr / local, некоторые файлы конфигурации в / etc).
Учитывая ваши несовпадающие диски, btrfs, вероятно, будет лучшим выбором для вас, но я считаю невозможным упомянуть btrfs без упоминания ZFS:
Если вам нужно дать блокировку устройства к виртуальным машинам И хотите гибкости чего-то вроде btrfs И не возражайте против установки модуля ядра, отличного от основного, используйте ZFS вместо btrfs.
Он делает почти все, что делает btrfs (за исключением, к сожалению, перебалансировки. Вы можете только добавлять диски в пул, никогда не удалять их или изменять макет) плюс многое другое , и вы можете создавать ZVOL (блочные устройства, использующие хранилище из вашего пула), а также подтомы.
Установить ZFS в Debian или Ubuntu и некоторых других дистрибутивах сейчас просто - дистрибутивы предоставляют пакеты (включая spl-dkms
и zfs-dkms
для автоматической сборки модулей для ваши ядра). Сборка модулей dkms занимает утомительно много времени, но в остальном это так же просто и понятно, как установка любого другого набора пакетов.
К сожалению, преобразовать в ZFS не так просто, как описанная выше процедура. Преобразование rootfs в ZFS само по себе довольно сложная процедура.Как и в случае с btrfs
, было бы проще сделать резервную копию ваших данных, файлов конфигурации и т. Д. И перестроить машину с нуля, используя дистрибутив с хорошей поддержкой ZFS (Ubuntu, вероятно, лучший выбор для ZFS в Linux на данный момент).
Хуже того, ZFS требует, чтобы все разделы или диски в vdev были одинакового размера (в противном случае vdev будет размером с наименьшее устройство в нем), поэтому вы можете добавить только sda и примерно половину sdb в zpool . остальная часть sdb может быть btrfs, ext4, xfs или даже LVM (что отчасти бессмысленно, поскольку вы можете создавать ZVOL с помощью ZFS).
Я использую ZFS в Debian (и очень рад, что ZFS наконец-то вошла в сам дистрибутив, поэтому я могу использовать собственные пакеты debian). Пользуюсь им уже несколько лет (как минимум с 2011 года). Настоятельно рекомендуется. Я просто хотел бы, чтобы у него была функция ребалансировки btrfs, которая была бы очень полезна сама по себе И открывала возможность удаления vdev из пула (в настоящее время невозможно с ZFS) или, возможно, даже преобразования из RAID-1 в RAIDZ-1.
Возможность btrfs выполнять онлайн-конверсии, например, из От RAID-1 до RAID-5, или от RAID-6, или от RAID-10 тоже неплохо, но я бы не стал его использовать. Я в значительной степени отказался от всех форм RAID-5 / RAID-6, включая RAID-Z ZFS (затраты на производительность И время очистки или повторной синхронизации просто не стоят того, IMO), и я предпочитаю RAID-1 или RAID-10 - я могу добавить столько виртуальных устройств RAID-1 в пул, сколько захочу и когда захочу (что эффективно преобразует RAID-1 в RAID-10 или просто добавляет больше зеркальных пар в существующий RAID-10).
В любом случае я широко использую ZVOL для виртуальных машин, поэтому btrfs мне не подходит.