Files
notes/Перенос_системы_на_другой_раздел.md

199 lines
5.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Перенос системы на новый раздел
```shell
lsblk -o NAME,FSTYPE,SIZE,MOUNTPOINTS
NAME FSTYPE SIZE MOUNTPOINTS
nvme0n1 953,9G
├─nvme0n1p1 vfat 499M /boot/efi
├─nvme0n1p2 ext4 100G
├─nvme0n1p3 ext4 400G /home/da2001/oldhome
└─nvme0n1p4 ext4 453,4G /
df -h | grep nvm
/dev/nvme0n1p4 446G 121G 302G 29% /
/dev/nvme0n1p3 393G 254G 120G 68% /home/da2001/oldhome
```
```shell
cat /etc/fstab
proc /proc proc nosuid,noexec,gid=proc 0 0
devpts /dev/pts devpts nosuid,noexec,gid=tty,mode=620,ptmxmode=0666 0 0
#tmpfs /tmp tmpfs nosuid 0 0
UUID=11cb9b94-71bd-4ed2-9467-9e9172525593 / ext4 relatime 1 1
UUID=39FA-63AA /boot/efi vfat umask=0,quiet,showexec,iocharset=utf8,codepage=866 1 2
# installer-feature-swapfile
/swap swap swap defaults 0 0
UUID=b1493839-453c-455e-8850-1ab33ca3f511 /home/da2001/oldhome ext4 relatime 0 0
```
```shell
ls -ln /home
итого 4
drwx------ 40 1000 1000 4096 мар 26 15:12 da2001
```
***
Задача сделать следующую разметку:
```shell
nvme0n1 953,9G
├─nvme0n1p1 vfat 499M /boot/efi
├─nvme0n1p2 ext4 100G /
├─nvme0n1p3 ext4 400G /home
└─nvme0n1p4 ext4 453,4G /other
```
## План действий
### Создание снимка всего диска с помощью Clonezilla на NAS
| Параметр | Значение |
|--------------|-----------------------------------|
| DNS | 192.168.13.1 |
| NAS | nas.dav.lan или 192.168.13.5 |
| Пользователь | da2001 |
| Путь | /mnt/main/data/Backup/bkp_sapelen |
### Копирование текущей системы в LiveUSB на NAS
1. Смонтировать текущий корневой раздел в /mnt
```shell
mount /dev/nvme0n1p4 /mnt
```
2. Скопировать текущую систему на NAS
```shell
rsync -ahHAXS --numeric-ids --info=progress2 --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*"} -e "ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" /mnt da2001@192.168.13.5:/mnt/main/data/Backup/bkp_sapelen
```
### Подготовка разделов (LiveUSB)
1. Форматируем `nvme0n1p2` (новый корень)
```shell
mkfs.ext4 /dev/nvme0n1p2
```
2. Форматируем `nvme0n1p3` (новый `/home`) — на нём сейчас `oldhome` - уже не нужен
```shell
mkfs.ext4 /dev/nvme0n1p3
```
3. `nvme0n1p4` (старый корень) **!НЕ ФОРМАТИРУЕМ!** — на нём текущая система
На завершающем шаге смотнируем его в `/other`, данные сохранятся
4. Копирование системы
- Создаём точки монтирования
```shell
umount /mnt
mkdir -p /mnt/new_root /mnt/old_root
```
- Монтируем новый корень
```shell
mount /dev/nvme0n1p2 /mnt/new_root
```
- Монтируем старый корень (текущая система) только для чтения
```shell
mount -o ro /dev/nvme0n1p4 /mnt/old_root
```
- Копируем систему на новый раздел
```shell
rsync -ahHAXS --numeric-ids --info=progress2 \
/mnt/old_root/ /mnt/new_root/ \
--exclude=/home
```
- Настройка fstab
```shell
blkid
vim /mnt/new_root/etc/fstab
```
```shell
UUID=<UUID-nvme0n1p1> /boot/efi vfat umask=0,quiet,showexec,iocharset=utf8,codepage=866 1 2
UUID=<UUID-nvme0n1p2> / ext4 relatime 1 1
UUID=<UUID-nvme0n1p3> /home ext4 relatime 1 2
UUID=<UUID-nvme0n1p4> /other ext4 relatime 0 0
```
5. Перенос `/home`
- Монтируем новый home раздел
```shell
mount /dev/nvme0n1p3 /mnt/new_root/home
```
- Копируем данные в новый home
```shell
rsync -ahHAXS --numeric-ids --info=progress2 /mnt/old_root/home/da2001/ /mnt/new_root/home/da2001/
chown -R 1000:1000 /mnt/new_root/home/da2001
```
6. Обновление загрузчика
- Монтируем системные каталоги
```shell
# mount /dev/nvme0n1p2 /mnt/new_root - уже должен быть смонтирован
mount --bind /dev /mnt/new_root/dev
mount --bind /proc /mnt/new_root/proc
mount --bind /sys /mnt/new_root/sys
mount /dev/nvme0n1p1 /mnt/new_root/boot/efi
```
- Меняем корень - chroot
```shell
chroot /mnt/new_root
```
- Внутри chroot — проверка текущего состояния
```shell
# Проверяем, что видим правильные разделы
lsblk
# Проверяем, что EFI раздел примонтирован
mount | grep efi
```
- Генерируем новую конфигурацию GRUB
```shell
grub-mkconfig -o /boot/grub/grub.cfg
```
- Устанавливаем загрузчик в EFI
```shell
grub-install --target=x86_64-efi \
--efi-directory=/boot/efi \
--bootloader-id=altlinux \
--recheck
```
Можно перезагружать систему и проверять.
После успешной загрузки стоит удалить лишние записи
```shell
sudo efibootmgr -v
```
и исправить меню grub, также удалить лишнее