Linux disko migravimas: Skirtumas tarp puslapio versijų

Iš Žinynas.
Jump to navigation Jump to search
(Jokio skirtumo)

20:13, 12 spalio 2018 versija

Š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. Disku layoutas(migravimas rootfs linuxe).png 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: Disku particiju formavimas(migravimas rootfs linuxe).png

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ę.