すべてのディスクをカバーする3つの物理パーティションを持つ、Debianを搭載したサーバーがあります。ブート、ルート、スワップです。次に、そのパーティションをLVMパーティションに置き換えます。 LVMでDebianを最初にインストールする方法を知っていますが、この場合、プロバイダーはリモートアクセスを備えたサーバーとこの方法でインストールされたシステムを取得するため、システムを最初にインストールできません。
Ssh接続のみを使用してパーティションを変更し、一時データを配置する他のリモートサーバーを変更するにはどうすればよいですか?
私の側からの迅速な更新。コンテキスト:今日、LVMの代わりに物理パーティション構成でインストールされた専用サーバーをオンラインにしました。 3つのパーティションがありました。
/ boot(ext4)-512M /(ext4)-730Gスワップ-8G
コンソールにアクセスできないという性質上、最終的な目標は既存のルートパーティションをLVMに変換することでした。
Ext4は縮小可能ではないと考えると、一時的なルートとしてスワップパーティションを再利用するしか方法がありませんでした。また、LVMを使用して一時的なルートを設定し、プロセスが正しく機能することを確認することにしました。
最初にスワップが判明しました:
swapoff -a
次に、partedを介してパーティションのサイズを変更しました(最初は742から750に開始されていました)。
parted
resize 3 742 744
そしてLVM用のパーティションを作成しました:
mkpart primary ext2 744 750
set 4 lvm on
一時ルートのPV/VG/LV /ファイルシステムの作成:
pvcreate /dev/sda4
vgcreate VolGroup00 /dev/sda4
lvcreate -L 5.73G -n tmproot VolGroup00
mkfs.ext4 /dev/VolGroup00/tmproot
次のステップは、ルートを一時的な場所にコピーすることでした:
mount /dev/VolGroup00/tmproot /media
rsync -ravzxq / /media/
すべてが揃ったら、/ media/etc/fstabのルートファイルシステムのエントリも変更する必要がありました。
/dev/VolGroup00/tmproot / ext4 defaults 1 1
ほとんどそこにある、コンソールにアクセスできない最後の、そして最も望ましくない部分は/boot/grub/grub.confを変更することでした:
元のエントリ:
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
変更されたエントリ:
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
安全のために、カーネルのdolvmパラメータとともにinsmod lvmが追加され、ルートパスもroot =/dev/mapper/VolGroup00-tmprootに変更されました。現時点では/ dev/mapper /パスを使用することが重要です。安全なデポジットとして、panic = 10パラメータも追加しましたが、ヘッダーのデフォルトのブートエントリは変更しませんでした。代わりに、grubに新しい設定で1回だけブートするように指示してみましたが、失敗した場合は元のエントリが機能しました。
grub
savedefault --default=1 --once
そして最後に:
reboot
最初は問題がなかったので、元のルートパーティションの上に新しいボリュームグループを作成する手順全体を繰り返し、最後にLVMを使用して適切な場所にルートを取得しました。
お役に立てれば。
以前に、centos 6で10Gのディスクパーティション「/ dev/sda2」を指しているルートパーティション「/」をLVパーティションに移行しました。実行された手順は次のとおりです。
ls/sys/class/scsi_Host/| xを読みながら; "---">/sys/class/scsi_Host/$ {x}/scanをエコーします。完了
fdisk /dev/sdb
partprobe /dev/sdb
pvcreate /dev/sdb1 vgcreate vg_root /dev/sdb1 lvcreate -v -n lv_root vg_root -L 9G
mkfs -t ext4 /dev/vg_root/lv_root mkdir /mnt/new_root/ mount -t ext4/dev/vg_root/lv_root /mnt/new_root/
df -lhT cat /etc/fstab blkid
検索/ -xdev | cpio -pmvd /mnt/new_root/
cd /mnt/new_root/ mount -t proc/proc proc mount -t sysfs/sys sys / mount --rbind/dev dev/
chroot /mnt/new_root/
vi /etc/fstab
#UUID = 98dd25ba-feed-4ddb-80be-5e2d1ab2bdaa/ext4 defaults 1 1 /dev/mapper/vg_root-lv_root/ext4 defaults 1 1
./ autorelabel をタッチします
出口
#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。 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。 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
#追加された行は title CentOS 6(2.6.32-573.el6.x86_64-lvroot) root(hd0,0) insmod lvm カーネル/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
cd /boot cp -av initramfs-$(uname -r).img initramfs-$(uname -r).img.old dracut -f
init 6 #または 再起動
dd if =/dev/zero of =/dev/sda bs = 1
#default = 0 default = 1
以前に提供された情報が誰かに役立つことを願っています。
前もって感謝します、
マヌエル・ラゾ
Linuxで不可能なことは何もありませんが、あなたが説明することを試みるには、決断力が必要です。 SSHアクセスしか持っていない場合は、間違えるとサーバーにアクセスできなくなる可能性があることに注意してください。リモートの「シリアル」コンソールと仮想電源スイッチがある場合は、少し役立つかもしれません。とはいえ、失うデータのない新しいインストールがある場合は、それを試してみませんか? LinuxシステムをリモートでRAID1にリモート変換する のチュートリアルを見つけました。 LVMで試行する手順も同様です。
まず、一時保管スペースの必要性について考えてみましょう。サーバーに2つ目のディスクがない場合は、 parted
を使用して既存のパーティションを縮小する ことができます。もちろん、これには、ブートパーティションとルートパーティションがディスクの半分未満を使用する必要があり、縮小可能なファイルシステムを使用する必要があります。 (たとえば、XFSとJFSは縮小できません。)
既存のパーティションを圧縮した後、解放されたスペースにLVM物理ボリューム、ボリュームグループ、およびその中の論理ボリュームを作成できます。ファイルシステムを複製します。 (ルートファイルシステムを複製するときは、sshd
を除くすべてを強制終了する必要があります。理想的には、シングルユーザーモードにします。マウントされたファイルシステムを複製するため、rsync
ではなくdd
を使用する必要があります。)
次に、LVMをサポートするinitrdを準備し、Warren Togamiのチュートリアルで説明されているように、GRUBを新しいシステムで起動するように指示します。これを実行したら、古いファイルシステムを削除するのは簡単です。 parted
を使用してLVMボリュームを拡張します。
幸運を!うまくいったかどうか教えてください!
彼は中間レスキューシステムを(以前は無効にされていた)スワップパーティションにセットアップし(マシンにRACがない場合は神経質な破壊作業)、そこから作業することができます。また、特定のファイルシステムにはオンラインのサイズ変更ツールが存在し、その後パーティションを縮小して再起動することはKWYDの場合ですが、可能です。