女士们先生们,我目前正在运行 CentOS6 6,存储空间为 300 GB。目前,/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
答案1
如果您可以创建 Kickstart 脚本或在安装阶段以其他方式执行此操作,这将变得容易得多。我在这里假设您有一个安装到根目录的大逻辑卷。
您首先需要启动到救援模式(不挂载本地文件系统)并缩小根逻辑卷。如果物理卷上的所有可用空间都已用完,则无法创建任何新逻辑卷。
- 启动到救援模式
lvm vgchange -a y
e2fsck -f /dev/vg0/root
(或者您的根逻辑卷在此处的任何名称。)resize2fs /dev/vg0/root <targeted size -10MB or so>
您的目标大小不能小于数据量,否则您将截断文件系统!lvm lvreduce -L <targeted size>
resize2fs /dev/vg0/root
我将文件系统缩小到略低于目标大小,然后将其扩大到逻辑卷容量,以节省古怪的块大小/舍入/数学废话。如果我擅长数学,我就会完成我的计算机科学学位,而不是成为系统管理员。
然后,您需要移动目标挂载点的当前目录,以使其不妨碍运行。(移动/var
到/var2
、/home
到/home2
等)
然后,您可以创建新的逻辑卷、新的挂载点和/etc/fstab
条目、挂载所有内容,然后将数据同步回/var2
新的/var
逻辑卷。(根据需要重复。)
这部分假设根文件系统(包含 /tmp)已挂载。您可以手动挂载,mount
或者重新启动,然后让救援模式执行此操作。
基本上:
lvcreate -ntmp -L<size> /dev/vg0
(像上面那样将 vg0 替换为您的卷组。)mkfs.ext3 -L tmp /dev/vg0/tmp
mv /tmp /tmp2
mkdir /tmp
/etc/fstab
为您的新挂载点添加条目。mount -a
- 将 /tmp2 的数据移回新的 /tmp。删除 /tmp2。
答案2
你走对了路。只需为所有这些目录创建单独的逻辑卷。它们不必是物理分区。
由于 lv_home 包含最多的空间,您应该能够远程执行此操作。
/home
备份您想要保存的任何内容。umount /home
lvremove /dev/vg_ts0/lv_home
或者lvreduce -L200G /dev/vg_ts0/lv_home
lvcreate -nlv_tmp -L<size> vg_ts0
lvcreate -nlv_var -L<size> vg_ts0
lvcreate -nlv_varlog -L<size> vg_ts0
- 对剩余的挂载点重复上述操作。
lvcreate -nlv_home -L<size> vg_ts0
这还将在卷组中留下一些空间,以便以后扩展其他逻辑卷。