GNU/Linux >> Znalost Linux >  >> Linux

Jak změnit systém fyzického oddílu na LVM?

Řešení 1:

Rychlá aktualizace z mé strany. Kontext:dnes jsem dostal online nainstalovaný dedikovaný server se schématem fyzických oddílů místo LVM. Byly zde 3 oddíly:

/boot (ext4) - 512M/ (ext4) - 730Gswap - 8G

Vzhledem k povaze neexistence přístupu ke konzoli bylo konečným cílem převést existující kořenový oddíl na LVM.

Vzhledem k tomu, že ext4 nelze zmenšit, jediným způsobem bylo znovu použít odkládací oddíl jako dočasný root. Také jsem se rozhodl nastavit dočasný kořenový adresář s LVM, abych se ujistil, že proces může fungovat správným způsobem.

Nejprve došlo k výměně:

swapoff -a

Poté změňte velikost oddílu přes parted (původně to bylo spuštěno z 742 na 750):

parted
resize 3 742 744

a vytvořil oddíl pro LVM:

mkpart primary ext2 744 750
set 4 lvm on

Vytvoření PV/VG/LV/systému souborů pro dočasného kořenového adresáře:

pvcreate /dev/sda4
vgcreate VolGroup00 /dev/sda4
lvcreate -L 5.73G -n tmproot VolGroup00
mkfs.ext4 /dev/VolGroup00/tmproot

Dalším krokem bylo zkopírovat kořenový adresář na dočasné místo:

mount /dev/VolGroup00/tmproot /media
rsync -ravzxq / /media/

Jakmile tam bylo vše, bylo třeba změnit také položku pro kořenový souborový systém v /media/etc/fstab:

/dev/VolGroup00/tmproot /                       ext4    defaults        1 1

Téměř tam, poslední a řekněme nejnechtěnější částí bez přístupu ke konzole byla úprava souboru /boot/grub/grub.conf:

původní záznam:

title CentOS (2.6.32-279.22.1.el6.x86_64)
root (hd0,0)
kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro root=UUID=e769af21-d9e1-455f-a6a7-7a9c84d8cbea rd_NO_LUKS LANG=en_US.UTF-8  KEYBOARDTYPE=pc KEYTABLE=hu rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto rd_NO_LVM rd_NO_DM rhgb quiet
initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img

upravený záznam:

title CentOS (2.6.32-279.22.1.el6.x86_64) LVM
insmod lvm
kernel /vmlinuz-2.6.32-279.22.1.el6.x86_64 ro LANG=en_US.UTF-8  KEYBOARDTYPE=pc KEYTABLE=hu SYSFONT=latarcyrheb-sun16 crashkernel=auto dolvm root=/dev/mapper/VolGroup00-tmproot panic=10 
#rd_NO_DM rd_NO_MD rd_NO_LUKS
initrd /initramfs-2.6.32-279.22.1.el6.x86_64.img

Jen pro jistotu:insmod lvm byl přidán spolu s parametrem dolvm pro jádro a kořenová cesta byla také změněna na root=/dev/mapper/VolGroup00-tmproot. V tuto chvíli je důležité použít cestu /dev/mapper/. Jako bezpečnou zálohu jsem také přidal parametr panic=10 a nezměnil výchozí zaváděcí položku v záhlaví. Místo toho jsem to zkusil a řekl grubu, aby spustil s novým nastavením pouze jednou a v případě selhání mohl původní záznam fungovat:

grub
savedefault --default=1 --once

A nakonec:

reboot

Poprvé to pro mě bylo v pořádku, takže jsem zopakoval celý postup s vytvořením nové skupiny svazků nad původním kořenovým oddílem a nakonec jsem pomocí LVM dostal root na správné místo.

Doufám, že to pomůže.

Řešení 2:

V Linuxu není nic nemožné, ale museli byste být odhodlaní a blázni, abyste se pokusili o to, co popisujete. Mějte na paměti, že pokud máte pouze SSH přístup, je velká šance, že ztratíte přístup k serveru, pokud uděláte chybu. Pokud máte vzdálenou „sériovou“ konzoli a virtuální vypínač, mohlo by to trochu pomoci. To znamená, že pokud máte zcela novou instalaci bez ztráty dat, proč to nezkusit? Našel jsem návod, jak vzdáleně převést systém Linux na RAID1; kroky, které byste zkusili pro LVM, by byly analogické.

Nejprve se podívejme na nutnost dočasného úložného prostoru. Za předpokladu, že na serveru nemáte druhý disk, můžete stávající oddíly zmenšit pomocí parted . To samozřejmě vyžaduje, aby vaše bootovací a kořenové oddíly využívaly méně než polovinu disku a musely používat zmenšitelný souborový systém. (Například XFS a JFS nelze zmenšit.)

Po zmenšení stávajících oddílů můžete v uvolněném prostoru vytvořit fyzický svazek LVM, v něm skupinu svazků a logické svazky. Replikujte své souborové systémy. (Při replikaci vašeho kořenového souborového systému byste měli zabít vše kromě sshd a ideálně být v režimu pro jednoho uživatele. Pravděpodobně budete muset použít rsync spíše než dd protože replikujete připojený souborový systém.)

Pak byste připravili initrd s podporou LVM a řekli GRUBu, aby zavedl nový systém, jak je popsáno v tutoriálu Warrena Togamiho. Jakmile to uděláte, je jednoduché odstranit staré souborové systémy pomocí parted a rostoucí objemy LVM.

Hodně štěstí! Dejte nám vědět, jestli to fungovalo!

Řešení 3:

Dříve jsem migroval svůj kořenový oddíl „/“, který ukazoval na diskový oddíl „/dev/sda2“ s 10G na centos 6, na oddíl LV, provedené kroky byly následující:

  • Přidejte pevný disk do VMware 10G.
  • rozpoznat disk bez restartování systému.
ls /sys/class/scsi_host/| while read x ; do echo "- - -" > /sys/class/scsi_host/${x}/scan ; done
  • Vytvořte oddíl na novém disku, předpokládejme, že můj nový disk je /dev/sdb
  • Práce s :
fdisk /dev/sdb
  • Být v rozhraní "fdisk" umožňuje vytvořit oddíl s klíčem "n" přiřazujícím kapacitu +9G, poté změnit typ oddílu pomocí klíče "t" přiřazujícího "8e" (oddíl lvm) a nakonec klíčem "w" pro použití změn, pokud chcete vidět, jak vypadá tabulka oddílů, můžete stisknout klávesu "p".
  • Jakmile je oddíl vytvořen, můžeme ověřit, že bylo zařízení vytvořeno pomocí následujícího příkazu (příkaz funguje, když není disk používán):
partprobe /dev/sdb
  • Jakmile se zařízení fyzicky ukončí, můžete vytvořit objekty LVM v následujícím pořadí:
pvcreate /dev/sdb1
vgcreate vg_root /dev/sdb1
lvcreate -v -n lv_root vg_root -L 9G
  • Jakmile budou jednotky LV vytvořeny, přiřaďte FS a připojte jej k aktuálnímu systému.
mkfs -t ext4 /dev/vg_root/lv_root
mkdir /mnt/new_root/
mount -t ext4 /dev/vg_root/lv_root /mnt/new_root/
  • Pokud nevíte, jaký je FS aktuálního oddílu, lze to zjistit pomocí příkazů jako:
df -lhT
cat /etc/fstab
blkid
  • po připojení nového LV můžeme přistoupit ke kopírování všech souborů systému.
find / -xdev | cpio -pmvd /mnt/new_root/
  • Jakmile jsou soubory zkopírovány, můžeme přistoupit ke změně "chroot", ale předtím připojíme některé oddíly:
cd /mnt/new_root/
mount -t proc /proc proc
mount -t sysfs /sys sys/
mount --rbind /dev dev/
  • teď změníme chroot
chroot /mnt/new_root/
  • Jakmile jsme v novém kořenovém adresáři, upravte soubor:
vi /etc/fstab
  • ponecháváme soubor téměř podobný :
#UUID=98dd25ba-feed-4ddb-80be-5e2d1ab2bdaa /                       ext4    defaults        1 1
/dev/mapper/vg_root-lv_root /           ext4    defaults        1 1
  • Jakmile je soubor správně upraven, vytvořte soubor v kořenovém adresáři s názvem "./autorelabel" pro případ, že byste pracovali s SELINUX "vynucováním" nebo "povolením".
touch ./autorelabel
  • Pojďme nyní opustit chroot prostředí /mnt/new-root
exit
  • Pokud byly změny provedeny na základě vašeho scénáře, proveďte jednu z posledních změn, to znamená upravit soubor grub "/boot/grub/grub.conf" přidáním nové nabídky (neupravujte aktuální možnost spouštění dokud nový přidaný nebude fungovat správně).
# before
title CentOS 6 (2.6.32-573.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=98dd25ba-feed-4ddb-80be-5e2d1ab2bdaa rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-573.el6.x86_64.img

# now
title CentOS 6 (2.6.32-573.el6.x86_64)
        root (hd0,0)
        kernel /vmlinuz-2.6.32-573.el6.x86_64 ro root=UUID=98dd25ba-feed-4ddb-80be-5e2d1ab2bdaa rd_NO_LUKS LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet
        initrd /initramfs-2.6.32-573.el6.x86_64.img

title CentOS 6 (2.6.32-573.el6.x86_64-lvroot)
        root (hd0,0)
        insmod lvm
        kernel /vmlinuz-2.6.32-573.el6.x86_64 ro dolvm root=/dev/mapper/vg_root-lv_root rd.lvm.lv=vg_root/lv_root LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
        initrd /initramfs-2.6.32-573.el6.x86_64.img

# the line added was 
title CentOS 6 (2.6.32-573.el6.x86_64-lvroot)
        root (hd0,0)
        insmod lvm
        kernel /vmlinuz-2.6.32-573.el6.x86_64 ro dolvm root=/dev/mapper/vg_root-lv_root rd.lvm.lv=vg_root/lv_root LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 crashkernel=auto  KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
        initrd /initramfs-2.6.32-573.el6.x86_64.img
  • Jakmile jsou provedeny změny v souboru grub, dokončete regeneraci nového souboru iso initrd:
cd /boot
cp -av initramfs-$(uname -r).img initramfs-$(uname -r).img.old
dracut -f
  • konečně restart:
init 6
# or
reboot
  • Jakmile se zobrazí nabídka grub, vyberte novou přidanou „CentOS 6 (2.6.32-573.el6.x86_64-lvroot)“ a ověřte, zda funguje správně.
  • Pokud systém funguje správně a nepoužívá „/dev/sda“, lze jej odebrat a odpojit od vašeho virtuálního počítače nebo fyzického serveru.
dd if=/dev/zero of=/dev/sda bs=1
  • Poslední strmé nastavení jako výchozí položka nová položka přidaná do nabídky grub "/boot/grub/grub.conf":
#default=0
default=1

Doufám, že dříve poskytnuté informace někomu pomohou.

předem děkuji,

Manuel Lazo


Linux
  1. Jak změníme heslo root?

  2. Jak zmenšit fyzický objem?

  3. Jak vytvořit oddíl LVM/fyzický objem> 2 TB?

  1. Jak změnit národní prostředí systému na RHEL7 Linux

  2. Jak nastavit nebo změnit název hostitele systému v systému Linux

  3. CentOS / RHEL:Jak zmenšit kořenový souborový systém LVM

  1. CentOS / RHEL :Jak přidat fyzický objem (PV) do skupiny svazků (VG) v LVM

  2. Jak změnit heslo root mysql

  3. Jak vytvořit systémový oddíl EFI?