Linux

如何更改正在執行的 Debian Linux 機器的分區大小?

  • December 26, 2017

我有一個專用伺服器(Debian 8),有兩個 1.8T SSD 驅動器作為 RAID 1 執行。在預設配置中,只使用了一小部分磁碟空間,我想修改分區以使用所有內容。

lsblk 的輸出:

$ lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE  MOUNTPOINT
sda               8:0    0  1.8T  0 disk  
|-sda1            8:1    0    4G  0 part  
| `-md1           9:1    0    4G  0 raid1 /
|-sda2            8:2    0    2G  0 part  [SWAP]
`-sda3            8:3    0  1.8T  0 part  
 `-md3           9:3    0  1.8T  0 raid1 
   |-vg00-usr  253:0    0    5G  0 lvm   /usr
   |-vg00-var  253:1    0    5G  0 lvm   /var
   `-vg00-home 253:2    0    5G  0 lvm   /home
sdb               8:16   0  1.8T  0 disk  
|-sdb1            8:17   0    4G  0 part  
| `-md1           9:1    0    4G  0 raid1 /
|-sdb2            8:18   0    2G  0 part  [SWAP]
`-sdb3            8:19   0  1.8T  0 part  
 `-md3           9:3    0  1.8T  0 raid1 
   |-vg00-usr  253:0    0    5G  0 lvm   /usr
   |-vg00-var  253:1    0    5G  0 lvm   /var
   `-vg00-home 253:2    0    5G  0 lvm   /home

df的輸出:

$ df
Filesystem            1K-blocks    Used Available Use% Mounted on
/dev/md1                4095616  283056   3812560   7% /
udev                      10240       0     10240   0% /dev
tmpfs                   3287176   98888   3188288   4% /run
/dev/dm-0               5029504 1344456   3406520  29% /usr
tmpfs                   8217932       4   8217928   1% /dev/shm
tmpfs                      5120       0      5120   0% /run/lock
tmpfs                   8217932       0   8217932   0% /sys/fs/cgroup
none                    8217932       0   8217932   0% /tmp
/dev/mapper/vg00-var    5029504  573944   4177032  13% /var
/dev/mapper/vg00-home   5029504 3001552   1749424  64% /home
tmpfs                   1643588       0   1643588   0% /run/user/0
tmpfs                   1643588       0   1643588   0% /run/user/1000
tmpfs                   1643588       0   1643588   0% /run/user/1001

如何使用剩餘的可用空間創建 /data?

由於您擁有 LVM,並且從您所顯示的內容來看,您的捲組中有相當多的未使用空間,您應該能夠使用 lvcreate 添加另一個卷並將其掛載到 /data。您可以以 root 身份使用 vgdisplay 來確認 vg00 中有多少可用。無論如何,這應該工作:

lvcreate -L50G -n data vg00
mkfs.ext4 /dev/mapper/vg00-data #or some other fs type if you prefer

然後在 /etc/fstab 中為新分區添加一行。可能通過 UUID 是最好的。

需要注意的一點是,在上面的命令中,我一開始只為新卷分配 50G,根據我的經驗,這樣做比立即填滿卷組要好得多。安全地增加一個卷(即使它是線上的)比縮小一個卷要簡單得多。當然,通常的警告適用於在接觸數據之前適當地備份數據。您可以使用以下過程調整捲的大小:

lvextend -L+50G /dev/mapper/vg00-data # make it 50G larger
reseize2fs /dev/mapper/vg00-data # assuming extfs

在遠端連接上,我建議在 screen/tmux 中發出這些命令,這樣如果您的 ssh 會話中斷,它們就不會冒中途神秘死亡的風險。

引用自:https://unix.stackexchange.com/questions/312351