199 lines
5.8 KiB
Markdown
199 lines
5.8 KiB
Markdown
# Перенос системы на новый раздел
|
||
|
||
```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, также удалить лишнее
|