Mar. 31st, 2016

keinkeinkein: (v14)
1. Пойти в магазин и купить новый 8-терабайтный жесткий диск. Подключить новый жесткий к SATA-контроллеру материнки в свободный порт и к разъему питания, не выключая компьютер.

2. Удостовериться через lsblk, что ядерный драйвер увидел устройство. Создать на новом HDD таблицу разделов GUID и vfat-раздел для EFI. Для упрощения процедуры размер раздела лучше сделать таким же, какой был на старом HDD (я обычно делаю этот раздел равным 1 GB). Далее с помощью программы dd скопировать раздел /boot/efi с собранным ядром на новый HDD.

3. Оставшуюся часть нового HDD зашифровать с помощью dm-crypt. Рекомендую шифровать жесткий диск целиком шифром AES с хорошим длинным паролем. Тщательно запомнить пароль (кстати, он не обязан совпадать с паролем от старого жесткого диска). На всякий случай сохранить куда-нибудь заголовок LUKS (cryptsetup умеет это делать).

4. Итого получилось: новый жесткий диск, два раздела, первый раздел - 1 GB, содержит ядро Linux в виде EFI-приложения, второй раздел - огромный криптоконтейнер до самого последнего сектора. Теперь поверх криптоконтейнера LUKS нужно создать уровень абстракции LVM, добавить новый PV (физический том) в VG (группу томов). Теперь нужно переместить все экстенты со старого жесткого диска на новый (читайте документацию по pvmove). Процедура может быть долгой, особенно если параллельно ей смотреть фильмы или как-то иначе нагружать I/O. Но главное - нет необходимости прерывать свою работу за компьютером.

5. Когда процесс завершится, нужно удалить старый жесткий диск из LVM (man vgreduce). Насколько я помню, в коде ядра есть атомарная проверка на наличие экстентов на физическом томе перед его удалением, но если не получится с первого раза, нужно снова запустить pvmove с теми же аргументами, а потом - снова vgreduce. Если новый жесткий диск все-таки имеет размер больше старого (например, купили 10 TB), тогда нужно сделать lvextend и resize2fs (я рассматриваю пример, когда используется ext4, а не btrfs). Важно: лучше оставить в VG немного свободного места на будущее для снапшотов файловых систем. Это очень удобная вещь для консистентных бэкапов.

6. На всякий случай сделайте резервные копии информации о логической структуре нового диска: GPT, LVM, файловые системы (начало, конец, лейблы, UUID, тип). Еще проверьте, что что нигде не используется путей наподобие /dev/disk/by-id/*. Потом запустите sync в терминале. Когда sync успешно отработает, физически отсоедините старый жесткий диск от SATA-контроллера материнки и от шины питания. Поскольку старый HDD тоже был зашифрован криптостойким алгоритмом, его можно тут же отнести в магазин и сдать по гарантии, не боясь того, что кто-то будет копаться в ваших данных, и получить деньги обратно.

Profile

keinkeinkein: (Default)
keinkeinkein

September 2017

S M T W T F S
     12
34567 89
10111213141516
17181920212223
24252627282930

Style Credit

Expand Cut Tags

No cut tags
Page generated Sep. 25th, 2017 10:12 pm
Powered by Dreamwidth Studios