Thi*_*his 3 partition ext4 hard-drive lvm centos
我们的企业标准是 CentOS(它似乎更喜欢 LVM),而且我主要来自非 LVM 背景,所以我正在处理这个问题。
我继承了一台旧机器作为日志服务器,不得不重新安装 CentOS。由于主板上的 EHCI 问题(通过普通安装 DVD 或通过 LiveCD GUI 安装),我能找到的唯一可以安装 CentOS 6.3 的是 LiveCD 文本安装。LiveCD 文本安装不允许我在磁盘上进行自己的分区设置;它只安装 LVM 并为我的日志服务器分配了错误的空间...
[mpenning@someHost ~]$ cat /etc/issue
CentOS release 6.3 (Final)
Kernel \r on an \m
[mpenning@someHost ~]$ df -m
Filesystem 1M-blocks Used Available Use% Mounted on
/dev/mapper/vg_livecd-lv_root
50397 2167 47719 5% /
tmpfs 1850 0 1850 0% /dev/shm
/dev/md127p1 485 65 395 15% /boot
/dev/mapper/vg_livecd-lv_home
227001 188 215283 1% /home
[mpenning@someHost ~]$ sudo lvm vgdisplay
--- Volume group ---
VG Name vg_livecd
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 278.96 GiB
PE Size 4.00 MiB
Total PE 71415
Alloc PE / Size 71415 / 278.96 GiB
Free PE / Size 0 / 0
VG UUID 8qywNz-cmKv-RxAH-WcsV-2nEA-sGg3-fcZ6BU
[mpenning@someHost ~]$
Run Code Online (Sandbox Code Playgroud)
两个问题:
/
257398 个 1-M 块并减少/home
到 20000 个 1-M 块,我可以在不重新启动的情况下执行此操作吗?如果可以,执行此操作的具体命令序列是什么?/var
分区,不完全重装应该怎么做?如果我需要增加 / 以拥有 257398 个 1-M 块并将 /home 减少到 20000 个 1-M 块,是否可以在不重新启动的情况下执行此操作,如果需要,执行此操作的具体命令序列是什么?
您大约有 280GB 的可用空间,其中 50GB 已分配给“/”,230GB 已分配给/home
. 因为这代表了您所有的可用空间,所以您必须先释放一些空间。这里有几个选项:
如果您没有在 中放置任何数据/home
,最简单的方法是丢弃现有的文件系统并使用适当的大小重新创建它:
卸载/home
:
# umount /home
Run Code Online (Sandbox Code Playgroud)将逻辑卷 (LV) 的大小减少到 20GB:
# lvreduce -L 20G /dev/vg_livecd/lv_home
Run Code Online (Sandbox Code Playgroud)重新创建/home
文件系统:
# mke2fs -j -m0 /dev/vg_livecd/lv_home
Run Code Online (Sandbox Code Playgroud)并重新安装/home
:
# mount /home
Run Code Online (Sandbox Code Playgroud)可以缩小 /home
而不是丢弃它,但这可能有点棘手:
卸载/home
:
# umount /home
Run Code Online (Sandbox Code Playgroud)fsck
文件系统。下一步可能需要这样做:
# fsck /dev/vg_livecd/lv_home
Run Code Online (Sandbox Code Playgroud)调整文件系统大小:
# resize2fs /dev/vg_livecd/lv_home 19G
Run Code Online (Sandbox Code Playgroud)降低LV:
# lvreduce -L 20G /dev/vg_livecd/lv_home
Run Code Online (Sandbox Code Playgroud)你会注意到我比 LV 减少了一点点文件系统;这是因为我永远不记得他们是否以相同的方式计算事物,所以我试图留出一点回旋余地。
在这两种情况下,此时您的卷组中现在大约有 210GB 的可用空间。现在您可以增加根文件系统的大小:
增加根LV的大小:
# lvresize -L260G /dev/vg_livecd/lv_root
Run Code Online (Sandbox Code Playgroud)增加文件系统的大小:
# resize2fs /dev/vg_livecd/lv_root
Run Code Online (Sandbox Code Playgroud)请注意,由于我在此答案中使用的四舍五入,您可能需要使用略小于 260G 的数字。此外,LVM 实用程序的最新版本包括为您调整文件系统大小的能力,但自从这些选项可用之前我就一直在这样做……所以我不能声称确切知道它们是如何操作的。
如果我想添加一个专用的 /var 分区,我应该如何在不完全重新安装的情况下进行?
首先,您可能希望在单用户模式下执行此操作,否则正在运行的进程可能会打开文件,/var
从而难以替换。话说回来...
您将再次需要可用空间。如果您没有在上一步中用完所有可用空间,而是留下几 GB 可用空间,则可以执行以下操作:
创建一个新的逻辑卷:
# lvcreate -n lv_var -L 10G /dev/vg0
Run Code Online (Sandbox Code Playgroud)创建一个新的文件系统:
# mke2fs -j -m0 /dev/vg_livecd/lv_var
Run Code Online (Sandbox Code Playgroud)通过添加以下行编辑/etc/fstab
以安装新的 LV /var
:
/dev/vg_livcde/lv_var /var ext4 defaults 1 2
Run Code Online (Sandbox Code Playgroud)
但是不要安装它!
在方便的地方挂载新的文件系统:
# mount /dev/vg_livecd/lv_var /mnt
Run Code Online (Sandbox Code Playgroud)复制以下内容/var
:
# rsync -a /var/ /mnt/
Run Code Online (Sandbox Code Playgroud)重命名/var
,以/var.old
创建一个新的目录:
# mv /var /var.old
# mkdir /var
Run Code Online (Sandbox Code Playgroud)将您的新 LV 安装在/var
:
# 卸载 /mnt # 挂载 /var
并继续启动。当您对一切正常工作感到满意时,您可以删除/var.old
.
归档时间: |
|
查看次数: |
2362 次 |
最近记录: |