Linux disko migravimas
Šiame straipsnyje aprašysime dabartinio naudojamo rootfs / migravimą į naująjį diską. T.y Pavyzdinėje situacijoje keisime HDD (standūjį diską) į daug spartesnį SSD tipo diską, tam atvejui naudosime naująją f2fs failų sistemą, bei papildomą /boot skirsnį su standartine ext4 failų sistema, reikalinga sistemos įkrovai, kadangi esamas GRUB2 kol kas dar nepalaiko įkrovos iš f2fs failų sistemų. Visa tai bus daroma standartiniame Ubuntu 16.04 LTS leidime.
Darbas bus atliktas šia tvarka:
- Pajungiame naujajį diską prie kompiuterio ir jį įkrauname.
- Suskaidome diską į 3 particijas, rootfs, boot ir swap.
- Suformatuojame naujajį diską f2fs failų sistema taip pat ir kitomis reikalingomis papildomomis failų sistemomis.
- Perkeliame duomenis į naujajį diską.
- Įdiegiame įkrovos tvarkyklę GRUB2.
- Išjungiame kompiuterį.
- Išimame senajį diską.
- Įjungiame kompiuterį.
Jeigu tingime perkrauti kompiuterį ?
echo "- - -" > /sys/class/scsi_host/host0/scan tail -f /var/log/kern.log
Kur mūsų naujasis diskas ?
dmesg | grep "gamintojas" fdisk -l
Aptikome, kad jis yra /dev/sda (senasis pasikeitė į /dev/sdb po perkrovimo)
Suskaidome diską
cfdisk /dev/sda
Jeigu prašo jūsų pasirinkti label type, pasirinkite pagal tai kokio tipo Bios/Efi turite, jeigu EFI tuomet GPT, jeigu Bios tuomet DOS. Aš pasirenku DOS šioje vietoje. Suskaidome, kad atrodytų maždaug taip. Paaiškinsiu kas ir kaip.
- /dev/sda1 - Bus mūsų primary /boot skirsnis skirtas įkrovai (kur laikomi branduoliai ir greitosios įkrovos atvaizdai bei įkrovos konfigūracija).
- /dev/sda2 - Sukūrėme kaip loginį skirsnį kuriame toliau bus rootfs bei swap skirsniai.
- /dev/sda5 - Mūsų pagrindinis / roofs skirsnis į kurį bus rašomi visi duomenys ir be to jis bus formatuojamas naujausia f2fs failų sistema.
- /dev/sda6 - SWAP skirsnis.
Formatuojame disko skaidinius (particijas)
Plikas kaip tilvikas utumbas neturi jokių f2fs įrankių todėl juos pirmiausia reiktų įdiegti:
apt-get install f2fs-tools
Suteikiame šiems skirsniams prasmės, inicijuodami failų sistemų sukurimą juose:
mkfs.f2fs /dev/sda5 mkfs.ext4 /dev/sda1 mkswap /dev/sda6
Viskas turi atrodyti maždaug taip:
Perkeliame duomenis
Pirmiausia reiktų užmontuoti naująsias rootfs / ir /boot particijas kur nors į /mnt ir pradėti kelti duomenis.
mkdir /mnt/{boot,rootfs} mount /dev/sda1 /mnt/boot mount /dev/sda5 /mnt/rootfs
Migravimui naudosime rsync, todėl prieš atlikdami migravimą, pirmiausia turime jį įdiegti:
apt-get install rsync
Migruojame!
rsync -axHAWXS --numeric-ids --info=progress2 / /mnt/rootfs/ rsync -axHAWXS --numeric-ids --info=progress2 /boot /mnt/boot/
UUID keitimas
Taip pat mums reikės pakeisti /mnt/rootfs/etc/fstab, montuojamų failų sistemų identifikacinius numerius, kuriuos sužinosime parašę komandą:
blkid
Turime pakeisti, kad atrodytų maždaug taip:
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / was on /dev/md0 during installation UUID=3606699b-e637-4e20-976e-d1a4cefe7e89 / f2fs defaults,noatime 0 0 # /boot was on /dev/md2 during installation UUID=45ff38e7-478e-4dce-a5d1-1d8fb604ebcb /boot ext4 defaults 0 2 UUID=668020e4-1b74-4276-a77d-5050460f41a4 none swap sw 0 0
Įkrovos sutvarkymas
Turime įeiti į naujai perkopijuotą sistemą ir atnaujinti GRUB2 konfigūraciją, kad įvyktų sėkmingas sistemos pasikrovimas.
mount -t proc none /mnt/rootfs/proc mount -o bind /dev /mnt/rootfs/dev mount -t sysfs sys /mnt/rootfs/sys mount /dev/sda1 /mnt/rootfs/boot chroot /mnt/rootfs/ /bin/bash sh -c "echo f2fs >> /etc/initramfs-tools/modules" update-initramfs -u -k all update-grub grub-install --root-directory=/boot --recheck --no-floppy /dev/sda
Viską atlikę, išeiname iš chroot aplinkos, paspaudę CTRL+D arba parašę:
exit
Perkrauname sistemą
sync&&reboot
Išimame senajį HDD
Dabar išjungus ar perkrovus sistemą, galima drąsiai išimti senajį HDD.
Problemos
Perkrovus niekas neužkraunama ir jokių klaidų pranešimų
Galimas dalykas, kad Bios pradėjo krauti iš kito HDD kuris yra kompiuteryje, tokiu atveju turite pasirinkti iš kokio HDD krauti nuspaudę vieną ir šių F klavišų kombinacijų ir pasirinkti diską pagal modelį:
F9, F11, F12
Užsikrauna iki užrašo (intramfs)
Chroot režime pamiršote iš naujo sugeneruoti initramfs atvaizdo (update-initramfs -u), žiūr. į viršų. Taip pat galimas variantas, kad pamiršote įrašyti į /etc/initramfs-tools/modules f2fs tvarkyklę.