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

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
wiki:ext_to_btrfs [2016/11/09 12:01]
[Инструкция преобразование ext4 в btrfs]
wiki:ext_to_btrfs [2016/11/09 13:25] (текущий)
Строка 21: Строка 21:
 Пока снапшот ext* не удален,​ для хранения новых и сохранения модифицированных файлов/​каталогов btrfs использует только те блоки, которые были помечены в ext* как свободные. Это означает,​ что преобразование может быть отменено когда угодно в любое время, с восстановлением исходной файловой системы ext*. Конвертер создает отдельный файл, содержащий все ссылки на исходную файловую систему ext*, и смещения в этом файле соответствуют смещениям на блочном устройстве. Это позволяет монтировать этот файл как loopback-устройство в режиме read only и видеть исходную файловую систему ext* одновременно с работой в файловой системой btrfs. Пока снапшот ext* не удален,​ для хранения новых и сохранения модифицированных файлов/​каталогов btrfs использует только те блоки, которые были помечены в ext* как свободные. Это означает,​ что преобразование может быть отменено когда угодно в любое время, с восстановлением исходной файловой системы ext*. Конвертер создает отдельный файл, содержащий все ссылки на исходную файловую систему ext*, и смещения в этом файле соответствуют смещениям на блочном устройстве. Это позволяет монтировать этот файл как loopback-устройство в режиме read only и видеть исходную файловую систему ext* одновременно с работой в файловой системой btrfs.
  
 +<note important>​Обратите внимание:​ при конвертировании для размещения файлов из старой ext* системы используется корневой подтом (о подтомах можно узнать в статье про [[wiki:​btrfs|Btrfs]]). Тогда как инсталятор обычно размещает корень в подтоме @ и домашний каталог /home в подтоме @home.</​note>​
  
-=====Пример конвертирования ​ext3=====  + 
-<note important>​В примере предполагается,​ что вы работаете с несмонтированным разделом,​ если нужно преобразовать корневую файловую систему,​ то загрузитесь с LiveCd/USB для выполнения этих действий.</​note>​ +=====Пример конвертирования ​ext*=====  
-<note important>/​dev/​sdX в командах нужно заменить на реальное имя устройства с которым вы выполняете операции):+В примере предполагается,​ что вы работаете с несмонтированным разделом,​ если нужно преобразовать корневую файловую систему,​ то загрузитесь с LiveCd/USB для выполнения этих действий. ​В примере мы преобразуем ext4 в btrfs, преобразование ext2 и ext3 ничем принципиально не отличается. 
 +<note important>/​dev/​sdX в командах нужно заменить на реальное имя устройства с которым вы выполняете операции.
 </​note>​ </​note>​
-# Сначала проверьте целостность файловой системы ​ext3\\ +  ​# Сначала проверьте целостность файловой системы ​ext4 
-fsck.ext3 -f /dev/sdX\\+  fsck.ext4 -f /dev/sdX
  
-# Преобразование ​ext3 в btrfs\\ +  ​# Преобразование ​ext4 в btrfs 
-btrfs-convert /dev/sdX\\+  btrfs-convert /dev/sdX
  
-# Монтирование новообразованной файловой системы btrfs\\ +  ​# Монтирование новой файловой системы btrfs 
-mount -t btrfs /dev/sdX /btrfs\\+  mount -t btrfs /dev/sdX /btrfs
  
-# Монтирование снапшота ​ext3\\ +  ​# Монтирование снапшота ​ext4 
-mount -t btrfs -o subvol=ext2_saved /dev/sdX /ext2_saved\\+  mount -t btrfs -o subvol=ext2_saved /dev/sdX /ext2_saved
  
-# Монтирование файла образа как loopback-устройства\\ +  ​# Монтирование файла образа как loopback-устройства 
-mount -t ext3 -o loop,ro /​ext2_saved/​image /ext3\\ +  mount -t ext4 -o loop,ro /​ext2_saved/​image /ext3\\
-{{ :​wiki:​converter-post.png|}} В приведённом выше примере файлы в /ext3 и в /btrfs будут идентичны. Любые модификации,​ выполненные в /btrfs, не будут видны в /ext3. Обратное преобразование делается так:+
  
-# Отмонтируем все элементы ​файловой системы смонтированные ранее\\  +{{ :​wiki:​converter-post.png|}} В приведённом выше примере файлы в /ext4 и в /btrfs будут идентичны. Любые ​модификации,​ выполненные ​в /​btrfs, ​не будут видны в /ext4. Обратное преобразование делается так:
-unmount /ext3\\ +
-unmount /​ext2_saved\\ +
-unmount /btrfs\\+
  
-# Обратное преобразование\\  +  ​# Отмонтируем все элементы файловой системы смонтированные ранее 
-btrfs-convert -r /dev/sdX\\+  ​unmount ​/ext4 
 +  unmount ​/ext2_saved 
 +  unmount /btrfs
  
-# Монтирование исходной файловой системы\\ +  # Обратное преобразование  
-mount -t ext3 /dev/sdX /ext3\\+  btrfs-convert -r /dev/sdX 
 + 
 +  ​# Монтирование исходной файловой системы 
 +  mount -t ext4 /dev/sdX /ext4
  
-Если вы хотите освободить место, занятое снимком исходной файловой системой ext3 (т.е. вы решили,​ что уже не нужно обратное преобразование),​ просто удалите файл /​ext2_saved/​image. 
 После удаления файла образа диск будет выглядеть примерно так -> После удаления файла образа диск будет выглядеть примерно так ->
-=====Инструкция преобразование ext4 в btrfs===== 
-Делаем на примере преобразования вынесенного в отдельный раздел /home. Для этого мы перезагружаемся с LiveCD/USB и монтируем нашу корневую систему (она нам поребуется для редактирования fstab). ​ 
-Запись о /home в установленной системы fstab выглядит примерно так так: 
-    
-   # /home was on /dev/sda5 during installation 
-   ​UUID=34a5d56c-f6b3-46bb-b5f6-8b6cc15e4da3 /home           ​ext4 ​  ​defaults ​           0       2 
- 
-Для начала проверим файловую систему /home на наличие ошибок:​ 
- 
-  fsck.ext4 -f /​dev/​sda5 ​ # ext4 т.к. раздел home выше отформатирован в её. 
-  ​ 
-Преобразование из ext4 в btrfs 
-  btrfs-convert /dev/sda5 # Он долго и упорно будет сканировать метаданные и копировать их, процесс конвертации может длиться очень долго. 
-                          # Не трогаем не выдергиваем ждём завершения. 
-                          ​ 
-Новоиспеченную btrfs можно смонтировать и проверить наличие папок ext2_saved и папку пользователя (вашу). ​ 
- 
-Теперь нужно внести правки в fstab, но сначала нужно узнать новый идентификатор раздела с home: 
-  sudo blkid 
-  # ищем строку с нашим разделом,​ вот и она: 
-  /dev/sda5: UUID="​baa5d56c-f6b3-46bb-b5f6-8b6cc15e4da3"​ UUID_SUB="​eaebe91a-5797-44d9-bc74-312316e7dbe6"​ TYPE="​btrfs"​ 
-Теперь надо исправить тип файловой системы и UUID home раздела в fstab. Для этого откройте fstab в любом редакторе с правами root пользователя. 
-Находим строку с нашим разделом home: 
-  ​ 
-  #/home was on /dev/sda5 during installation 
-   ​UUID=34a5d56c-f6b3-46bb-b5f6-8b6cc15e4da3 /home           ​ext4 ​  ​defaults ​           0       2 
- 
-Теперь заменяем старый UUID "​34a5d56c-f6b3-46bb-b5f6-8b6cc15e4da3",​ на новый "​baa5d56c-f6b3-46bb-b5f6-8b6cc15e4da3",​ меняем тип файловой системы с ext4 на btrfs, должна получиться примерно такая строка : 
-  #/home was on /dev/sda5 during installation 
-  UUID=baa5d56c-f6b3-46bb-b5f6-8b6cc15e4da3 /home           ​btrfs ​  ​defaults ​   0    2 
- 
-Перегружаемся в основную систему,​ если всё сделано правильно,​ то вы не заметите никаких изменений. В крайнем случае [который не должен наступить] можно вернуть ext4 на место (выполнив обратное преобразование и вернув стрый UUID и тип файловой системы в строке монтирования /home в fstab). 
  
 =====Подчистка за конвертером===== =====Подчистка за конвертером=====
Строка 93: Строка 63:
   - Удалите подраздел со снимком ext*: btrfs subvolume delete ext2_saved   - Удалите подраздел со снимком ext*: btrfs subvolume delete ext2_saved
   - Удалите системный каталог ext* **lost+found** (он вам больше не нужен)   - Удалите системный каталог ext* **lost+found** (он вам больше не нужен)
-  - Проведите дефрагментацию:​ btrfs filesystem defragment ​/ +  - Проведите дефрагментацию:​ btrfs filesystem defragment ​<​точка монтирования btrfs> 
-  - Выполните балансировку:​ btrfs balance start /+  - Выполните балансировку:​ btrfs balance start <​точка монтирования btrfs>
 ===== Ссылки ===== ===== Ссылки =====