我希望分區中的資料/dev/sda1
自動「溢出」到該/dev/vda
分區。所以我想我的問題是:如何合併 2 個分割區,使其/
大小變成 138GB?
root@vps:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.8G 0 3.8G 0% /dev
tmpfs 780M 34M 747M 5% /run
/dev/sda1 39G 7.7G 32G 20% /
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 780M 0 780M 0% /run/user/1000
/dev/vda 99G 60M 94G 1% /mnt/vda
這些是可用的磁碟:
root@vps:/# fdisk -l
Disk /dev/vda: 100 GiB, 107374182400 bytes, 209715200 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/sda: 40 GiB, 42949672960 bytes, 83886080 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xffcebafc
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 83886046 83883999 40G 83 Linux
我對此了解不多,所以我可能不會問正確的問題。
答案1
鑑於您正在處理兩個實體設備,您將無法在實體層級組合分割區。但是,您可以使用 LVM(邏輯磁碟區管理器)建立相當於虛擬區塊裝置的內容,該虛擬區塊裝置由多個真實的塊設備。這將模擬 ~138GB 的分割區。也可以使用 BTRFS 在檔案系統層級執行類似的操作,但您可以使用 LVM 執行下列操作:
注意:除了 LVM 支援之外,您的系統還需要能夠從 LVM 引導,這取決於您的引導程式及其配置方式。
轉換為 LVM
顯然,請確保首先備份系統,因為此過程會清除/dev/sda1
和/dev/vda
。然後從 Live CD/USB 驅動器啟動 Linux 並...
- 運行
wipefs /dev/vda
以快速清除分割區。 - 透過運行創建LVM物理卷
pvcreate /dev/vda
- 建立卷宗組:
vgcreate vg0 /dev/vda
- 為您的根檔案系統建立一個邏輯磁碟區:
lvcreate -L80G -n rootfs vg0
。不用擔心80GB的大小;稍後會增加。 - 將檔案系統放在邏輯磁碟區上,例如... ext4:
mkfs.ext4 -L ROOTFS /dev/vg0/rootfs
- 掛載新檔案系統... /mnt/newroot:
mount -L ROOTFS /mnt/newroot
- 由於您是從 Live CD 執行此操作,因此您需要將真實的安裝
/
到某處,例如... /mnt/oldroot:mount /dev/sda1 -o ro /mnt/oldroot
- 複製老根將成為什麼新根:
cp -aR /mnt/oldroot/* /mnt/newroot/
現在,到目前為止,除了失去了其中的一切之外/dev/vda
,沒有發生任何不可挽回的事情。因此,這是設定引導程式(例如 GRUB2)以進行引導/dev/vg0/rootfs
並確保可以引導的絕佳機會。除了 df 輸出應如下所示之外,一切都應該相同:
root@vps:~$ df -h
Filesystem Size Used Avail Use% Mounted on
udev 3.8G 0 3.8G 0% /dev
tmpfs 780M 34M 747M 5% /run
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 780M 0 780M 0% /run/user/1000
/dev/vg0/rootfs 99G 7.7G 92G ?% /
如果您已經做到這一點,那麼您可以繼續執行以下操作來利用 LVM 的神奇力量。對於某些檔案系統,例如 EXT4,可以在即時系統上完成以下操作;無需現場 CD。
- 清除舊根:
wipefs /dev/sda1
- 建立新的實體卷:
pvcreate /dev/sda1
- 將新實體磁碟區新增至 LVM:
vgextend vg0 /dev/sda1
此時,這兩個分割區可供 LVM 使用,但尚未使用。要使用兩個分割區(實際上它們現在是 LVM 實體磁碟區),/
請擴充根邏輯磁碟區以消耗所有可用空間:
- 擴大邏輯卷:
lvextend -l 100%FREE /dev/vg0/rootfs
- 擴大文件系統:
resize2fs /dev/vg0/rootfs
這應該會給你一個大小約為 138GB 的根檔案系統:)