Переход на Gentoo из Debian с dm-crypt

Увы, но когда мне необходимо было сделать подобные действия, информации в интернете об этом не было.

Решение предлагается для такой конфигурации разделов:

Boot
CryptedLVM -> LVM -> root, home, swap

Итак, начнем:

1) Загружаемся с systemrescuecd (не стоит забывать про разрядность ядра)

2) Далее нужно подмонтировать все разделы

Посмотрим имеющиеся

root@sysresccd /root % parted /dev/sda -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start   End     Size    Type      File system  Flags
1      1049kB  500MB   499MB   primary   ext4         boot
2      501MB   21.5GB  21.0GB  extended
5      501MB   21.5GB  21.0GB  logical

Убедимся, что тот раздел, который мы хотем расшифровать, это тот, который мы хотим

root@sysresccd /root % cryptsetup luksDump /dev/sda5
LUKS header information for /dev/sda5

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha1
Payload offset: 4096
MK bits:        512
MK digest:      49 7e f2 86 a2 96 28 05 d5 cc 7b c6 79 a5 a0 ed 39 fd f0 18 
MK salt:        eb 7e 02 cb 7a a6 c4 52 cc db 50 c7 bf c3 1e 13 
6d 55 4b eb ae d6 7d aa 35 07 d4 e6 c3 d7 30 cd 
MK iterations:  57750
UUID:           e25d7bc5-e161-42db-b9fd-834bd53a309a

Key Slot 0: ENABLED
    Iterations:             231273
    Salt:                   0e 4c 4b fd 94 17 f6 bf c6 c4 6b c2 32 1e e7 be 
                            db 85 57 3c 0c a0 fd 8b 1e 75 d1 78 e5 fd 1e 5c 
    Key material offset:    8
    AF stripes:             4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Далее подключим шифрование

root@sysresccd /root % cryptsetup luksOpen /dev/sda5 sda5_crypt
Enter passphrase for /dev/sda5: 

После чего у нас должны появиться LVM

root@sysresccd /root % lvdisplay
  --- Logical volume ---
  LV Path                /dev/main/home
  LV Name                home
  VG Name                main
  LV UUID                vD3bd7-EU1Y-9JND-Ygk2-f9Lz-chwr-QzHOfp
  LV Write Access        read/write
  LV Creation host, time fatreverse, 2014-12-28 14:03:39 +0000
  LV Status              NOT available
  LV Size                19.53 GiB
  Current LE             4999
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto

Активируем нашу группу томов:

root@sysresccd /root % vgchange -a y main
  1 logical volume(s) in volume group "main" now active

После чего их можно будет увидеть в /dev/volume_group_name

root@sysresccd /root % ls /dev/main
home

Монтируем все разделы как для chroot

root@sysresccd /root % mkdir /mnt/debian
root@sysresccd /root % mount /dev/main/home /mnt/debian/
root@sysresccd /root % mount /dev/sda1 /mnt/debian/boot

Итог: мы получили наш debian.

Далее самое интересное – непосредственная установка генты.

Для начала – сохраняем весь старый корень в архив (дабы можно было развернуть в том случае, если после установки ничего не заработает)

root@sysresccd /mnt % tar -zcf debian.tgz debian --exclude=debian/home

Теперь можно без страха впиливать генту.

Скачаем и распакуем stage3

root@sysresccd /mnt/debian % wget http://distfiles.gentoo.org/releases/\
        amd64/autobuilds/current-stage3-amd64/stage3-amd64-20141204.tar.bz2
root@sysresccd /mnt/debian % tar xfj stage3-amd64-20141204.tar.bz2

Добавляем -march=native в /etc/portage/make.conf

root@sysresccd /mnt/debian % nano etc/portage/make.conf

Готовимся для chroot’а

root@sysresccd /mnt/debian % cp -L /etc/resolv.conf etc/
root@sysresccd /mnt/debian % mount -t proc proc proc
root@sysresccd /mnt/debian % mount --rbind /sys sys
root@sysresccd /mnt/debian % mount --make-rslave sys
root@sysresccd /mnt/debian % mount --rbind /dev dev
root@sysresccd /mnt/debian % mount --make-rslave dev

Выбираем зеркала

root@sysresccd /mnt/debian % mirrorselect -i -o >> etc/portage/make.conf
root@sysresccd /mnt/debian % mirrorselect -i -r -o >> etc/portage/make.conf

А теперь chroot

root@sysresccd /mnt/debian % chroot ./ /bin/bash
sysresccd / # source /etc/profile
sysresccd / # export PS1="(chroot) $PS1"
(chroot) sysresccd / # 

(chroot) sysresccd / # emerge-webrsync

(chroot) sysresccd / # emerge --sync --quiet

Читаем новости

(chroot) sysresccd / # eselect news read all

Добавляем русскую локаль

(chroot) sysresccd / # echo 'ru_RU.UTF-8 UTF-8' >> /etc/locale.gen
(chroot) sysresccd / # locale-gen
(chroot) sysresccd / # eselect locale list
/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_COLLATE to default locale: No such file or directory
Available targets for the LANG variable:
  [1]   C
  [2]   POSIX
  [3]   ru_RU.utf8
  [ ]   (free form)
(chroot) sysresccd / # eselect locale set 3
/usr/bin/locale: Cannot set LC_MESSAGES to default locale: No such file or directory
/usr/bin/locale: Cannot set LC_COLLATE to default locale: No such file or directory
Setting LANG to ru_RU.utf8 ...
Run ". /etc/profile" to update the variable in your shell.
(chroot) sysresccd / # env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache..

Устанавливаем все пакеты, которые нам будут далее необходимы

(chroot) sysresccd / # emerge gentoo-sources genkernel cryptsetup grub

Ведро можно будет потом переконфигурировать, пока пусть будет genkernel

(chroot) sysresccd / # genkernel --lvm --luks --mdadm --bootloader=grub --menuconfig --no-zfs  all

В /etc/default/grub необходимо дописать GRUB_CMDLINE_LINUX=“dolvm crypt_root=/dev/sda5”

Теперь нужно поправить fstab.

/dev/sda1               /boot           ext4            noatime         1 2
/dev/main/home          /               ext4            noatime         0 1

И /etc/conf.d/dmcrypt

target=crypt-lvm 
source='/dev/sda5'

Устанавливаем grub

(chroot) sysresccd / # grub2-install /dev/sda
(chroot) sysresccd / # grub2-mkconfig -o /boot/grub/grub.cfg

Change password

(chroot) sysresccd / # passwd

Готово! Теперь можно перезагружаться и далее уже действовать по любому мануалу установки генты, которые доступны в сети.