Ext-btrfs Сравнение версий

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
Последняя версия Следующая версия справа и слева
wiki:ext_to_btrfs [2016/03/03 00:01]
[Из ext* в btrfs]
wiki:ext_to_btrfs [2016/11/09 12:01]
[Инструкция преобразование ext4 в btrfs]
Строка 1: Строка 1:
 ====== Ext-btrfs ====== ====== Ext-btrfs ======
-======Глоссарий====== 
-chunk - кусок файловой системы,​ btrfs размечает не диск, а chunk'​и внутри раздела. 
-leaf - леана, ветка метаданных,​ inode, в её пишутся метаданные описывающие содержание chunk'​ов и мелкие файлы. 
-лист - кусок чанка или сам чанк, туда пишутся данные. 
  
 =====Из ext* в btrfs===== =====Из ext* в btrfs=====
-<​note>​ +[[wiki:​btrfs|Btrfs]] содержит очень мало метаданных,​ которые имеют фиксированное положение,​ что делает относительно лёгкой разработку утилит преобразования в неё из других файловых систем. Алгоритм Copy on write позволяют btrfs сохранять неизмененную копию исходной файловой системы,​ а администратору позволяют отменить преобразование,​ даже после выполнения изменений в итоговой файловой системе btrfs (откат происходит без учета изменений в btrfs, т.е. к тому моменту когда было запущено преобразование).
-Эта статья помечена как незаконченная. +
-</​note>​ +
-Btrfs содержит очень мало метаданных,​ которые имеют фиксированное положение,​ что делает относительно лёгкой разработку утилит преобразования в неё из других файловых систем. Алгоритм Copy on write позволяют btrfs сохранять неизмененную копию исходной файловой системы,​ а администратору позволяют отменить преобразование,​ даже после выполнения изменений в итоговой файловой системе btrfs (откат происходит без учета изменений в btrfs, т.е. к тому моменту когда было запущено преобразование).+
  
 Программа преобразования btrfs-convert использует libe2fs для чтения метаданных ext2-3-4 (далее для простоты ext*), и использует свободные блоки файловой системы для помещения в них метаданных новой файловой системы btrfs. Алгоритм преобразования работает так: Программа преобразования btrfs-convert использует libe2fs для чтения метаданных ext2-3-4 (далее для простоты ext*), и использует свободные блоки файловой системы для помещения в них метаданных новой файловой системы btrfs. Алгоритм преобразования работает так:
Строка 49: Строка 42:
 {{ :​wiki:​converter-post.png|}} В приведённом выше примере файлы в /ext3 и в /btrfs будут идентичны. Любые модификации,​ выполненные в /btrfs, не будут видны в /ext3. Обратное преобразование делается так: {{ :​wiki:​converter-post.png|}} В приведённом выше примере файлы в /ext3 и в /btrfs будут идентичны. Любые модификации,​ выполненные в /btrfs, не будут видны в /ext3. Обратное преобразование делается так:
  
-Полное отмонтирование файловой системы ​btrfs\\ +Отмонтируем ​все элементы ​файловой системы ​смонтированные ранее\\ 
 unmount /ext3\\ unmount /ext3\\
 unmount /​ext2_saved\\ unmount /​ext2_saved\\
Строка 63: Строка 56:
 После удаления файла образа диск будет выглядеть примерно так -> После удаления файла образа диск будет выглядеть примерно так ->
 =====Инструкция преобразование ext4 в btrfs===== =====Инструкция преобразование ext4 в btrfs=====
-Делаем ​аналогично,​ я буду вести вас за руку, делаю ​на примере ​моего опыта ​преобразования раздела /home и прикручивания ​его на месте. +Делаем на примере преобразования ​вынесенного в отдельный ​раздел /home. Для этого мы перезагружаемся с LiveCD/​USB ​и монтируем нашу корневую систему (она нам поребуется для ​редактирования fstab).  
-Общий план действий, мы установили ubuntu 12.10, ​корень изначально отформатирован ​в btrfs, вот ​fstab: +Запись ​о /home в установленной системы fstab выглядит ​примерно так так: 
-   #        <file system> ​                 <mount point> ​   <​type> ​  <​options> ​         <​dump> ​ <​pass>​  +   
-   # / was on /dev/sda3 during installation  +
-   ​UUID=d094dfa1-3114-41d0-86da-5e3d91a75a35 /               ​btrfs ​  ​defaults,​subvol=@ ​ 0       ​1 ​ #корень ​ +
-   # +
-   # /boot was on /dev/sda2 during installation  +
-   ​UUID=d9e3ccbf-9281-4322-ab39-f3b590b41c1a /boot           ​ext4 ​   defaults ​          ​0 ​      2 #раздел /boot обязательно отдельно и не btrfs +
-   # +
-   # /boot/efi was on /dev/sda1 during installation +
-   ​UUID=EECD-EEE1 ​                           /​boot/​efi ​      ​vfat ​   defaults ​          ​0 ​      ​1 ​   +
-   #Efi потому что - [[wiki:​установка_дистрибутива_на_компьютер_с_efi|Установка дистрибутива на компьютер с efi]] +
-   #+
    # /home was on /dev/sda5 during installation    # /home was on /dev/sda5 during installation
    ​UUID=34a5d56c-f6b3-46bb-b5f6-8b6cc15e4da3 /home           ​ext4 ​  ​defaults ​           0       2    ​UUID=34a5d56c-f6b3-46bb-b5f6-8b6cc15e4da3 /home           ​ext4 ​  ​defaults ​           0       2
-   # 
-   # swap was on /dev/sda4 during installation ​ 
-   ​UUID=eec9a7be-672b-4720-acef-70f5bd6df0c4 none            swap    sw                 ​0 ​      0 
-Вот отличненько,​ первое это приводим в порядок корневой раздел,​ переделываем его вот в это(инфа о параметрах [[wiki:​fstab?&#​btrfs|тут]]):​ 
-   # / was on /dev/sda3 during installation 
-   ​UUID=d094dfa1-3114-41d0-86da-5e3d91a75a35 /               ​btrfs ​  ​defaults,​subvol=@,​compress,​autodefrag ​ 0 0 
-Перезагружаем,​ смотрим что вышло. Запустилась?​ отлично,​ значит всё хорошо. Загружаемся с любого LiveCD образа. 
-//​Инструкция составлена для преобразования раздела /home при схеме разметки как выше, в вашем случае может понадобиться изменить имена разделов//​ 
  
-  Сначала запустить fsck #Проверим ​диск на наличие ошибок +Для ​начала проверим ​файловую систему /home на наличие ошибок
-  fsck.ext4 -f /dev/sda5 #ext4 т.к. раздел home выше отформатирован в её.+ 
 +  fsck.ext4 -f /​dev/​sda5 ​ # ext4 т.к. раздел home выше отформатирован в её.
   ​   ​
-  #Преобразование из Ext* в Btrfs +Преобразование из ext4 в btrfs 
-  btrfs-convert /dev/sda5 #Он долго и упорно будет сканировать метадаты, у меня процесс конвертации длился больше получаса (300GB/​500GB)+  btrfs-convert /dev/sda5 # Он долго и упорно будет сканировать метаданные и копировать их, процесс конвертации ​может ​длиться очень долго
-                          #Не трогаем не выдергиваем ждём завершения.+                          # Не трогаем не выдергиваем ждём завершения.
                           ​                           ​
-  #Новоиспеченную btrfs можно смонтировать ​через наутилус ​и проверить наличие папок ext2_saved и папку пользователя(вашу) +Новоиспеченную btrfs можно смонтировать и проверить наличие папок ext2_saved и папку пользователя (вашу) 
-  #Узнаем новый ​адресс раздела с home+ 
 +Теперь нужно внести правки в fstab, но сначала нужно узнать новый ​идентификатор ​раздела с home:
   sudo blkid   sudo blkid
-  #ищем строку с нашим разделом,​ вот и она:+  # ищем строку с нашим разделом,​ вот и она:
   /dev/sda5: UUID="​baa5d56c-f6b3-46bb-b5f6-8b6cc15e4da3"​ UUID_SUB="​eaebe91a-5797-44d9-bc74-312316e7dbe6"​ TYPE="​btrfs"​   /dev/sda5: UUID="​baa5d56c-f6b3-46bb-b5f6-8b6cc15e4da3"​ UUID_SUB="​eaebe91a-5797-44d9-bc74-312316e7dbe6"​ TYPE="​btrfs"​
-Теперь надо исправить ​неправильный адрес home в fstab. Открываем наутилус, примонтируем раздел ​с корнем. +Теперь надо исправить ​тип файловой системы и UUID home раздела в fstabДля этого ​откройте fstab в любом редакторе с правами root пользователя. 
-  sudo gedit +Находим строку с нашим разделом home:
-открываем корень, затем run -> media -> ищем ​среди подключенных дисков корневой раздел, ​открываем там будет папка "​@",​ переходим etc -> fstab \\ +
-Отлично,​ находим строку с нашим разделом home:+
   ​   ​
   #/home was on /dev/sda5 during installation   #/home was on /dev/sda5 during installation
    ​UUID=34a5d56c-f6b3-46bb-b5f6-8b6cc15e4da3 /home           ​ext4 ​  ​defaults ​           0       2    ​UUID=34a5d56c-f6b3-46bb-b5f6-8b6cc15e4da3 /home           ​ext4 ​  ​defaults ​           0       2
-Теперь ​правим его, по аналогии с корнем, ​заменяем ​ старый UUID "​34a5d56c-f6b3-46bb-b5f6-8b6cc15e4da3",​ на новый "​baa5d56c-f6b3-46bb-b5f6-8b6cc15e4da3",​ прописываем параметры, получаем(не забудьте исправить ext4 на btrfs):+ 
 +Теперь заменяем старый UUID "​34a5d56c-f6b3-46bb-b5f6-8b6cc15e4da3",​ на новый "​baa5d56c-f6b3-46bb-b5f6-8b6cc15e4da3", ​меняем тип файловой системы с ext4 на btrfsдолжна ​получиться примерно такая строка :
   #/home was on /dev/sda5 during installation   #/home was on /dev/sda5 during installation
-  UUID=baa5d56c-f6b3-46bb-b5f6-8b6cc15e4da3 /home           ​btrfs ​  ​defaults,​compress,​autodefrag ​   ​0 ​0 +  UUID=baa5d56c-f6b3-46bb-b5f6-8b6cc15e4da3 /home           ​btrfs ​  ​defaults ​   0    2 
-Перезагружаемая, если всё сделано правильно,​ оно загрузиться. В крайнем случае [который не должен наступить] ​по вышестоящей инструкции можно вернуть ext* на место.+ 
 +Перегружаемся в основную систему, если всё сделано правильно, ​то вы не заметите никаких изменений. В крайнем случае [который не должен наступить] ​можно вернуть ext4 на место (выполнив обратное преобразование и вернув стрый UUID и тип файловой системы в строке монтирования /home в fstab).
  
 =====Подчистка за конвертером===== =====Подчистка за конвертером=====
  
-Если переход на btrfs состоялся окончательно - то не забудьте подчистить за конвертером:​ +Если переход на btrfs состоялся окончательно ​и вы уже не планируете возвращать старую фс - то не забудьте подчистить за конвертером:​ 
-  - Удалите подраздел со снимком ​EXT: btrfs subvolume delete ext2_saved +  - Удалите подраздел со снимком ​ext*: btrfs subvolume delete ext2_saved 
-  - Удалите системный каталог ​ext2-4 ​lost+found (он вам больше не нужен)+  - Удалите системный каталог ​ext* **lost+found** (он вам больше не нужен)
   - Проведите дефрагментацию:​ btrfs filesystem defragment /   - Проведите дефрагментацию:​ btrfs filesystem defragment /
   - Выполните балансировку:​ btrfs balance start /   - Выполните балансировку:​ btrfs balance start /