如何缩小Ubuntu LVM逻辑和物理卷?


26

我已将Ubuntu 12.10安装为系统上的唯一操作系统。

我告诉Ubuntu赶紧覆盖所有内容,因此,我只有Ubuntu创建的两个分区,一个是一百MB的启动分区,然后是其他所有分区。

主分区约为600GB,

我希望将此大小调整为450GB,因此我可以将Windows 8安装为双引导。

问题是我无法解决如何缩小分区的问题,通常从Gparted(gparted-live-0.14.1-6-i486.iso)live iso可以,只需调整大小即可。

但是这次Ubuntu已经安装了LVM。

因此,Ubuntu分区旁边有一个锁定图标。这使我无法执行任何操作,可以选择分区,并且有一个“停用”选项,如果我正确,我认为是停用交换?如果这样做,我可以操纵该分区。

我在这里问这是在我破坏系统之前要做的正确的事情。

  1. 从实时gparted iso引导。
  2. 选择Ubuntu分区。
  3. “停用”分区。
  4. 调整分区大小。
  5. “激活”分区。
  6. 应用。
  7. 利润???

我的想法正确吗?

编辑#1

因此,经过一段长时间的聊天之后,我开始使用此命令

sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root

成功缩小了逻辑分区。

Gparted New Shot

但是现在我有困难的部分。

现在,我需要缩小物理分区,以便可以使用安装Windows 8的空间创建一个新的物理分区。

所以我以为我可以跑步

pvresize --setphysicalvolumesize {any size here} /dev/sda5

但是我回来了:

/ dev / sda5:无法分配到xxxxx扩展区,因为已分配了更高的扩展区。

我认为这是由于此图像引起的交换:

该死的交换!,那么下一步是什么?

$: lvdisplay
  --- Logical volume ---
  LV Path                /dev/ubuntu/root
  LV Name                root
  VG Name                ubuntu
  LV UUID                G7Z3dA-xska-8QpO-Y5oD-aIVO-D8l1-22s6dO
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2013-01-29 22:06:02 +1300
  LV Status              available
  # open                 1
  LV Size                540.42 GiB
  Current LE             138348
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0

  --- Logical volume ---
  LV Path                /dev/ubuntu/swap_1
  LV Name                swap_1
  VG Name                ubuntu
  LV UUID                14qpRy-H5jl-dTAq-CVle-k7Bz-95Rm-Y46zOs
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2013-01-29 22:06:04 +1300
  LV Status              available
  # open                 2
  LV Size                7.97 GiB
  Current LE             2041
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

编辑#1之前的其他信息

Gparted屏幕截图
请注意,以上照片是从Ubuntu存储库中的Gparted版本中获取的,而不是最新版本

matthew @ play:〜$ sudo fdisk -l

Disk /dev/sda: 750.2 GB, 750156374016 bytes
255 heads, 63 sectors/track, 91201 cylinders, total 1465149168 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 identifier: 0x000c5bec

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      499711      248832   83  Linux
/dev/sda2          501758  1465147391   732322817    5  Extended
/dev/sda5          501760  1465147391   732322816   8e  Linux LVM

Disk /dev/mapper/ubuntu-root: 741.3 GB, 741334843392 bytes
255 heads, 63 sectors/track, 90128 cylinders, total 1447919616 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 identifier: 0x00000000

Disk /dev/mapper/ubuntu-root doesn't contain a valid partition table

Disk /dev/mapper/ubuntu-swap_1: 8560 MB, 8560574464 bytes
255 heads, 63 sectors/track, 1040 cylinders, total 16719872 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 identifier: 0x00000000

Disk /dev/mapper/ubuntu-swap_1 doesn't contain a valid partition table

matthew @ play:〜$ sudo lvs

  LV     VG     Attr     LSize   Pool Origin Data%  Move Log Copy%  Convert
  root   ubuntu -wi-ao-- 690.42g                                           
  swap_1 ubuntu -wi-ao--   7.97g  

matthew @ play:〜$ sudo vgs

  VG     #PV #LV #SN Attr   VSize   VFree
  ubuntu   1   2   0 wz--n- 698.39g    0 

matthew @ play:〜$ sudo pvs

  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda5  ubuntu lvm2 a--  698.39g    0 

确保您运行的是最新的GParted版本(只有最近获得的LVM支持 -您只是对其他读者的说明)。我认为停用是停用卷组(vgchange -an myvgname),如果您要更改物理音量,则可能需要停用。:)哦,这几乎是一个答案。
gertvdijk

提供更多详细信息。
希尔伍德

@gertvdijk如果需要任何快速信息,请在聊天中与我联系。
希尔伍德

这个解决了吗?我正在寻找减少物理分区以并行安装另一个版本的OS的方法。
Jamess

Answers:


17

这些是调整LVM或LVM2分区大小所需的所有步骤-

sudo lvresize --verbose --resizefs -L -150G /dev/ubuntu/root

sudo pvresize --setphysicalvolumesize {any size here} /dev/sda5

/dev/sda5: cannot resize to xxxxx extents as later ones are allocated.

您必须在LVM的末尾重新排列未分配的空间。这意味着在root和swap_1分区之后。因此,您需要使用以下命令移动该可用空间

pvs -v --segments /dev/sda5

This will show the output like below
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx nnn 0 free                          
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy zzz swap 0 linear /dev/sda5:yyy-zzz

现在,使用以下命令删除外部碎片-

sudo pvmove --alloc anywhere /dev/sda5:yyy-zzz

现在让我们看看进展如何-

pvs -v --segments /dev/sda5

This will show the output like below
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g 0 xxx root 0 linear /dev/sda:0-xxx
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g xxx nnn swap 0 linear /dev/sda5:xxx-yyy(-1)
/dev/sda5 ubuntu lvm2 a-- 698.04g 150g yyy zzz 0 free

之后,使用gparted并将LVM调整为最大使用区域,其余空间将留在未分配的空间中。请享用...


7

我想,现在您有了较小的根LV,lvremove交换LV并重新创建了它。这将迫使它直接在位置上附加到根LV。完成后,您应该可以pvresize对物理卷进行操作。然后,这是编辑分区表(fdisk)以便将分区缩小为PV的新大小,从而释放空间供Windows安装程序使用的最可怕的部分。

为了减小分区的大小,我建议将其增大一点,比PV报告的大小大几个MB,并增大PV和根LV的大小以填充可用区。这样,您可以确定A)使用LVM的所有分区大小,并且不会因无法访问而丢失空间,B)通过将二进制KiB / MiB / GiB误解为十进制KB不会切断PV的重要数据/ disk / GB,反之亦然。

新交换,如果您创建一个新交换来确保将其附加到根LV上,如我上面建议的那样,它将具有一个不同的UUID,因此/ etc / fstab将不匹配。调整大小全部完成后,您将需要mount /dev/ubuntu/root /mnt编辑/ mnt ** / etc / fstab **。

在fstab文件中,您需要找到类似于以下内容的交换条目,并使用所报告的值更新UUID =之后的十六进制blkid

blkid我的系统上的步骤如下:

  1. blkid /dev/ubuntu/swap_1
    

    哪个输出

    /dev/ubuntu/swap_1: UUID="9e99b37a-38af-4987-85eb-92048abd9825" TYPE="swap"
    
  2. 复制UUID值

    9e99b37a-38af-4987-85eb-92048abd9825

  3. 从根LV编辑/ etc / fstab,然后插入UUID值代替旧的UUID。

    UUID=**old-uuid** none swap sw 0 0
    

    替换新的UUID代替旧的uuid

    UUID=9e99b37a-38af-4987-85eb-92048abd9825 none swap sw 0 0
    

    或者,您可以替换UUID机制并使用/dev/ubuntu/swap_1,例如

    /dev/ubuntu/swap_1 none swap sw 0 0
    

此过程以及有问题的编辑帮助我调整了分区大小。我找不到lvdelete命令(12.04),并使用lvremove删除了交换分区。pvresize就像一种魅力。然后,我使用gparted live CD将分区调整为较小的大小。完成操作并创建了未分配的大小。我建议询问者应提供完整的答案。
Jamess

顺带一提,我没有使用UUID(我改变了它,我不记得了),可能systyem从未使用UUID进行交换。因此,我可以跳过UUID编辑步骤。
Jamess

如何重新创建交换lv 1. lvcreate -L 5G -n / dev / vg0 / swap_1 2. mkswap / dev / vg0 / swap_1,swapon -s / dev / vg0 / swap_1,然后验证/ etc / fstab条目以及是否需要更改UUID。
Jamess

感谢您提到lvdelete我的答案不正确。现在,我已修复文本以引用专有lvremove名称。
Daniel Llewellyn

6

使用软件中心的KVPM。我使用整个磁盘安装了一个巨大的LVM(我知道一个巨大的LVM的意义)的Ubuntu 14.10 LTS,但是我想为另一个操作系统和一个数据驱动器添加另外两个LVM。我使用了KVPM,它在描述中说是KDE分区管理器,但在14.04上效果很好。步骤如下。

  1. 下载14.04LTS并制作可引导的USB。
  2. 使用TRY UBUNTU选项从USB引导,以便在USB记忆棒上运行。
  3. 从软件中心安装KVPM。
  4. 在您选择的终端上运行KVPM,

    sudo kvpm-如果您刚刚运行kvpm,实时CD将给您一个错误,并挂起。

  5. 一旦kvpm打开了GUI,请转到标记为some_drive-vg的选项卡

  6. 突出显示要调整大小的音量,然后右键单击以选择选项,选择减小音量。
  7. 您可以在输入新大小的同时重新标记LVM。
  8. 按照提示进行更改并确认,您将有未分配的可用空间。
  9. 可用空间可以根据需要制作任意数量的新LVM。我的显示器显示了绿色的未分配空间,只需右键单击绿色空间,您唯一的选择将是“创建新逻辑卷”。

与编写整个过程相比,我花费的时间更长。

顺便说一句,在所有更改之后,我重新调整大小的/ root分区都能正常运行。只需在您选择的操作系统中重新启动到HDD,即可享受新发现的卷。


0

KVPM是必经之路,无需重新启动。

  1. 右键单击卸载分区
  2. 缩小尺寸
  3. 右键单击其他分区扩展大小
  4. 重新安装原始分区

完成!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.