Если вы купили новый компьютер, а у вас есть старый, и на нем уже установлен GNU/Linux, то вам не обязательно устанавливать на новую ось процессом установки. Даже с переносом конфигов что-нибудь да проебется. Инновационный способ - пофайлово скопировать старую файловую систему.
1. Взять внешний жесткий диск, сделать на нем раздел с нормальной файловой системой, которая может в юзеров и разрешения и вот это все, подмонтировать в работающую систему и скопировать на него все кроме ненужного:
$ rsync -aAX --info=progress2 --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/lost+found","/var/tmp/*"} / /mnt/portable_hdd/
# если у вас еще ненужные папки, например /media, то и их заэксклюдьте
2. Загрузиться в ноутбук с liveusb какого-нибудь линупса. Допустим там один SSD диск. А еще этот ноутбук поддерживает загрузку только с UEFI. Снес таблицу разделов, создал GPT (важно для UEFI)
500МБ раздел для EFI и одновременно /boot с fat32
Инструкция про этот хитрый раздел, который называется ESP (E for EFI), есть на арчвики.
Остальное под LUKS контейнер (шифрование диска).
там LVM: physical volume (pvcreate), в нем volume group (vgcreate), внутри два logical volume (lvcreate)
$ lvcreate -n swap_lv -L9G ssd_encrypted_vg # размер - 9ГБ, потому что оперативки 8ГБ,
# и я хз, где степени десятки, а где степени
# двойки
$ lvcreate -n root_lv -l 100%FREE ssd_encrypted_vg
$ mkfs.ext4 /dev/ssd_encrypted_vg/root_lv
$ mkswap -f /dev/ssd_encrypted_vg/swap_lv
Далее монтируем получившуюся файловую систему.
Сначала монтируем куда-то рут.
После там создаем папку boot.
Туда затем монтируем бутовый/ESP раздел.
Снова rsync&
#39;аем. Если вы решили не использовать внешний HDD, то можете первый rsync
пропустить, а rsync&
#39;ать по сети, например по SSH. Тогда тут в команду добавьте
exclude&
#39;ы из самого начала, чтобы не скопировать ненужные папки.
$ rsync -aAX --info=progress2 /media/ubuntu/xyugovnozhopa /mnt/arch_install
В /mnt/arch_install теперь находится рут вашей будущей системы. Пришло время
править etc/fstab - заменить все нужные маунты. Лучше для физических разделов
использовать UUID, которые можно посмотреть с помощью ls -l /dev/disks/by-uuid/,
а для lvm-штук - /dev/${VOLUME_GROUP_NAME}/${LOGICAL_VOLUME_NAME}
Если у вас SSD, и вы хотите использовать discard, а не fstrim по крону, то
прописывайте в параметры всех разделов с файловыми системами, которые на SSD,
опцию discard.
Внезапно обнаружил, что в арче /etc/crypttab для открывания luks контейнера во время
загрузки не нужен.
Пришло время для chroot в новую инсталляцию арча. Лучше подключить интернет,
потому что возможно придется поставить новые пакеты.
$ cd /mnt/arch_install
$ mount -t proc proc proc/
$ mount --rbind /sys sys/
$ mount --rbind /dev dev/
$ chroot /mnt/arch_install /bin/bash
Ставим пакмэном пакет efibootmgr, нужный для загрузки с EFI вместо биоса.
Снова с помощью lsblk и ls -l /dev/disks/by-uuid смотрю всякие UUID&
#39;ы, лезу
в настройки граба в /etc/default/grub и там правлю настройки, чтобы
открывался люкс контейнер, и чтобы линукс знал, откуда загружаться из
suspend&
#39;а. allow-discard - это чтобы команды, важные для ssd, проходили через luks контейнер.
Иначе вашему SSD может быть плохо:
GRUB_CMDLINE_LINUX_DEFAULT="cryptdevice=UUID=b473f1ce-dc46-4cbf-a28a-0324edec6f1a:luks_cont:allow-discards resume=/dev/mapper/main_vg-swap_lv"
Ставим grub и генерируем его конфиг, который кладется в /boot:
$ grub-install --target=x86_64-efi --efi-directory=/boot --bootloader-id=grub
$ grub-mkconfig -o /boot/grub/grub.cfg
Если обнаруживается, что вторая команда сыпет предупреждениями или ошибками про lvmetad,
то лезем в /etc/lvm/lvm.conf, меняем use_lvmetad на нолик вместо единички. После этого
делаем вышеназванную команду по генерации конфига граба и меняем обратно на единичку.
Лезем в /etc/lvm/lvm.conf и говорим lvm&
#39;у, чтобы пропускал discard&
#39;ы:
issue_discards = 1
Все должно быть готово, грузимся. Ну или не грузимся, а прямо здесь и сейчас
удаляем видеодрайвера со старой системы и ставим для новой, чтобы не обосраться
без иксов.
Я например после ребута в новоустановленную систему обнаружил, что иксы не работают.
И вайфай не работае, ибо на десктопе его не было. Небеда
$ sudo systemctl disable dhcpcd.service
$ sudo systemctl stop dhcpcd.service
$ sudo systemctl enable NetworkManager.service
$ sudo systemctl start NetworkManager.service
$ nmcli d wifi list # показать список вайфай точек
$ nmcli d wifi connect nazvanietochki password PASSWORDNAME
теперь яндекс пингуется
Смотрю, что осталось от нвидии:
$ pacman -Q | grep -i nvidia
удаляю их всех и за одно cuda тоже
Лезу проверяю, что у меня в /etc/X11/xorg.conf.d
Там параша, kinda-предотвращающая тиринг у нвидии. Удаляю парашу
Ставлю все, что арчвики говорит, нужно для интел видеокарты.
перезагрузка
Пришло время сменить хостнейм, переделать синхронизацию дропбокса, почистить кукизы
браузеров и синхронизацию браузера.
$ sudo hostnamectl set-hostname nyashniy_notebook_mimimi
Дальше сами разберетесь