Linux

在 CentOS 6 中修改分區

  • August 9, 2012

女士們先生們,我目前正在執行具有 300 GB 儲存空間的 CentOS6 6。目前,/dev/sda 看起來像這樣(通過 parted):

Number  Start   End    Size   Type     File system  Flags
1      1049kB  525MB  524MB  primary  ext4         boot
2      525MB   322GB  322GB  primary               lvm

我正在修改這個系統以符合 CIS 基準,我需要為 /tmp、/var、/var/log、/var/log/audit 和 /home 創建單獨的分區。

有什麼建議麼???

編輯:添加 PVS 和 LVS

# pvs
 PV         VG         Fmt  Attr PSize   PFree
 /dev/sda2  vg_ts0     lvm2 a--  299.51g    0


# lvs
 LV      VG         Attr   LSize   Origin Snap%  Move Log Copy%  Convert
 lv_home vg_ts0    -wi-ao 239.68g
 lv_root vg_ts0    -wi-ao  50.00g
 lv_swap vg_ts0    -wi-ao   9.83g

如果您可以創建 Kickstart 腳本或在安裝階段執行此操作,這將變得非常容易。我在這裡假設你有一個大的邏輯卷安裝到根目錄。

您首先需要引導到救援模式(不安裝本地文件系統)並縮小您的根邏輯卷。如果物理卷上的所有可用空間都已用完,則無法創建任何新空間。

  1. 啟動救援模式
  2. lvm vgchange -a y
  3. e2fsck -f /dev/vg0/root(或者您的根邏輯卷在此處命名的任何名稱。)
  4. resize2fs /dev/vg0/root <targeted size -10MB or so>您的目標大小不能小於數據量,否則您將截斷文件系統!
  5. lvm lvreduce -L <targeted size>
  6. resize2fs /dev/vg0/root

我將文件系統縮小到略低於目標大小,然後將其增長回邏輯卷容量以節省時髦的塊大小/舍入/數學廢話。如果我擅長數學,我會完成我的電腦科學學位而不是成為系統管理員。

然後,您需要移動目標掛載點的目前目錄以將它們移開。(移動/var/var2/home/home2等)

然後,您可以創建新的邏輯卷、新的掛載點和/etc/fstab條目,掛載所有內容,然後將數據同步回/var2新的/var邏輯卷。(根據需要重複。)

這部分假定根文件系統(包含 /tmp)已安裝。您可以手動執行此操作,也可以mount重新啟動並讓救援模式執行此操作。

基本上:

  1. lvcreate -ntmp -L<size> /dev/vg0(像上面那樣用你的捲組替換 vg0。)
  2. mkfs.ext3 -L tmp /dev/vg0/tmp
  3. mv /tmp /tmp2
  4. mkdir /tmp
  5. /etc/fstab為您的新掛載點添加條目。
  6. mount -a
  7. 將 /tmp2 的數據移回新的 /tmp。刪除 /tmp2。

引用自:https://serverfault.com/questions/415914