시스템 초기 상태:

시스템 초기 상태:

내 Centos6x64 VM에는 약 500G의 xvda 디스크가 있습니다. 처음에는 xvda1에 8G가 할당되어 /에 마운트됩니다. xvda의 나머지 500G 디스크 공간은 아직 할당되지 않았습니다. 그래서 남은 디스크 공간을 사용 가능하게 하기로 결정하고 fdisk, pvcreate, vgcreate, lvcreate를 사용하여 논리 볼륨이 있는 xvda2 파티션을 생성하고 포맷하고 마지막으로 fstab을 업데이트하여 자동으로 마운트했습니다.

해당 폴더(마운트 지점)와의 관계는 다음과 같습니다.

  • /dev/centos/home ..../home [200G]
  • /dev/centos/root ..../ [100G]

문제는 다음과 같습니다

  • /home이 올바르게 마운트된 것으로 보이며 표시된 크기입니다.df -h197G 입니다.
  • 그러나 루트에 대한 설치가 올바르지 않습니다. 결과에서df -h아래 치수는/dev/xvda1에 포함/boot7.8G 맞습니다. 그러나 크기는/dev/mapper/centos-root에 포함/오류는 7.8G를 표시합니다. 약 100G가 표시되어야 합니다. 다음 디스크 공간과 동일한 디스크 공간이 잘못 표시됩니다./dev/xvda1.

질문:

  • 귀하의 참고를 위해 아래에 몇 가지 결과를 정리하려고 했습니다. 이 문제를 해결하는 데 도움을 주세요. 이 문제를 해결하려면 어떻게 해야 합니까?
  • 또한 xvda1에 할당된 디스크 공간을 8G에서 200G로 늘리고 싶다면 더 쉽고 직접적인 방법이 있습니까? 구글 검색에서 이런 걸 찾았어요우편 엽서이것은 매우 목표에 부합합니다. 하지만 grub 화면에 멈춰서 성공적으로 재부팅할 수 없습니다. 이 실패의 세부 사항에 대한 정보가 많지 않습니다. 포맷과 같은 추가 디스크 공간을 할당하기 위해 fdisk를 사용할 때 몇 가지 전제 조건을 설정하지 않았습니까?

나는 이것에 익숙하지 않고 붙어 있습니다. 도와주세요.

시스템 초기 상태:

# fdisk -l
Disk /dev/xvda: 536.9 GB, 536870912000 bytes 255 heads, 63 sectors/track, 65270 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000611ee
    Device      Boot    Start   End      Blocks   Id  System
    /dev/xvda1   *      1       1045     8387584   83  Linux
Disk /dev/xvdb: 32.2 GB, 32204390400 bytes 255 heads, 63 sectors/track, 3915 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00000000

# lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0  500G  0 disk
└─xvda1 202:1    0    8G  0 part /
xvdb    202:16   0   30G  0 disk /mnt

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  897M  6.5G  12% /
tmpfs           3.6G     0  3.6G   0% /dev/shm
/dev/xvdb        30G  173M   28G   1% /mnt

# cat /etc/fstab
UUID=2d0f2d55-672b-4c05-8eba-9421dd808ad7 / ext4    defaults 1 1
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/xvdb       /mnt    auto    defaults,nofail,comment=cloudconfig     0 2

내가 수행한 단계:

  • fdisk /dev/xvda ...(n > p = 2 > t = 8e)
  • 재시작
  • pvccreate /dev/xvda2
  • vgcreate centos /dev/xvda2
  • lvcreate -n home -L 200G 센토스
  • lvcreate -n root -L 100G 센토스
  • lvcreate -n swap -L 4G 포인트
  • mkfs.ext4 /dev/centos/root
  • mkfs.ext4 /dev/centos/home
  • mkswap /dev/centos/swap
  • 마운트 /dev/xvda1 /boot
    • ...그것이 내가 하고 싶었지만 허락되지 않은 일이었습니다.
    • 그래서 마운트 지점 /etc/fstab을 . 하지만 그것도 작동하지 않습니다./dev/xvda1//boot
      • 아래 제공된 결과에는 df -h두 가지 모두에 대한 올바른 마운트 지점이 표시되어 있지만 /dev/xvda1 i.e. /boot표시된 /dev/mapper/centos-root i.e. /디스크 공간 /dev/mapper/centos-root = 7.8G은 올바르지 않습니다. 나는 그것을 기대하고있어 ~100G.
      • 또한 결과에는 lsblk빈 마운트 지점이 표시됩니다 centos-root (dm-1). 의 경우 centos-root예상 마운트 지점 //dev/xvda1예상 마운트 지점이 있습니다 /boot.
  • 마운트 /dev/centos/root/
  • 마운트 /dev/centos/home /home
  • /etc/fstab에 적절한 항목을 만듭니다( cat /etc/fstab아래 참조).
  • 즉시 닫습니다 -r
  • mkhomedir_helper 센토스
    • 재부팅 후 centos의 홈 디렉토리에 액세스할 수 없게 되어 "홈 디렉토리 /home/centos에 대한 chdir을 변경할 수 없습니다: 해당 파일 또는 디렉토리가 없습니다"라는 오류가 발생했습니다. 이 문제를 해결하려면 위 명령을 실행하여 사용자 centos의 홈 디렉터리를 다시 만들어야 했습니다.

고양이/etc/fstab

UUID=3a75c67b-5053-4863-963e-c6a572f13972       /       ext4    defaults        1 1
UUID=2d0f2d55-672b-4c05-8eba-9421dd808ad7       /boot   ext4    defaults        1 2
tmpfs                   /dev/shm                tmpfs   defaults        0 0
devpts                  /dev/pts                devpts  gid=5,mode=620  0 0
sysfs                   /sys                    sysfs   defaults        0 0
proc                    /proc                   proc    defaults        0 0
/dev/xvdb       /mnt    auto    defaults,nofail,comment=cloudconfig     0 2
/dev/mapper/centos-home         /home              ext4    defaults     0 0

fdisk -l

    Device Boot      Start         End      Blocks   Id  System
/dev/xvda1   *           1        1045     8387584   83  Linux
/dev/xvda2            1045       65270   515892667   8e  Linux LVM

df-h

Filesystem              Size  Used Avail Use%  Mounted on
/dev/mapper/centos-root 7.8G  898M  6.5G  12%  /
tmpfs                   3.6G     0  3.6G   0%  /dev/shm
/dev/xvda1              7.8G  898M  6.5G  12%  /boot
/dev/xvdb               30G   173M   28G   1%  /mnt
/dev/mapper/centos-home 197G   60M  187G   1%  /home

LSBLK

NAME                   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda                   202:0    0  500G  0 disk
├─xvda1                202:1    0    8G  0 part /
└─xvda2                202:2    0  492G  0 part
  ├─centos-home (dm-0) 253:0    0  200G  0 lvm  /home
  ├─centos-root (dm-1) 253:1    0  100G  0 lvm
  └─centos-swap (dm-2) 253:2    0    4G  0 lvm
xvdb                   202:16   0   30G  0 disk /mnt

쿠로코

/dev/xvda1: UUID="2d0f2d55-672b-4c05-8eba-9421dd808ad7" TYPE="ext4"
/dev/xvdb: UUID="3656cb72-7e94-4e63-81ea-66397ad45d13" SEC_TYPE="ext2" TYPE="ext3"
/dev/xvda2: UUID="ASXeKh-x8xL-nDVF-afzq-zU8a-sCbd-qGM6pS" TYPE="LVM2_member"
/dev/mapper/centos-home: UUID="4510891a-354d-4486-bd47-95d474f197bb" TYPE="ext4"
/dev/mapper/centos-root: UUID="3a75c67b-5053-4863-963e-c6a572f13972" TYPE="ext4"
/dev/mapper/centos-swap: UUID="5dff9552-3d36-4cfa-936c-28e02c1ae108" TYPE="swap"

LV 디스플레이

  --- Logical volume ---
  LV Path                /dev/centos/home
  LV Name                home
  VG Name                centos
  LV UUID                lFWQxa-mqgc-Ur8t-npDc-O2NU-r6J4-UhC2j2
  LV Write Access        read/write
  LV Creation host, time ip-xx-xx-xx-xx.ec2.internal, 2018-06-16 07:18:22 +0000
  LV Status              available
  # open                 1
  LV Size                200.00 GiB
  Current LE             51200
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                UQ6oAD-JyRa-cb8l-VmgW-aZh9-qbof-Z1Z9af
  LV Write Access        read/write
  LV Creation host, time ip-xx-xx-xx-xx.ec2.internal, 2018-06-16 07:18:22 +0000
  LV Status              available
  # open                 0
  LV Size                100.00 GiB
  Current LE             25600
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                QyY2z9-5EpX-D8dY-DORZ-9BbY-TqgA-07fc3X
  LV Write Access        read/write
  LV Creation host, time ip-xx-xx-xx-xx.ec2.internal, 2018-06-16 07:18:24 +0000
  LV Status              available
  # open                 0
  LV Size                4.00 GiB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:2

답변1

마운트하려는 파일 시스템 /boot( )은 실제로는 귀하의 것입니다 . 따라서 원하는 마운트 지점에 마운트하더라도 실제로 마운트하려는 것은 내부 디렉토리 이고 파일에 Directory를 마운트할 수 없기 때문에 작동하지 않습니다. 체계./dev/xvda1//boot/dev/xvda1

LVM 논리 볼륨과 파일 시스템을 생성했지만 /여기 /home에 데이터를 넣지 않았습니다. 기존 파일 시스템을 새 블록 장치로 마이그레이션하지 않았습니다.

또한 GRUB는 새 파일 시스템에 대해 알지 못하므로 /원본에서 시작하려고 시도합니다 /. 다음은 이러한 논리 볼륨을 사용하는 방법에 대한 개요입니다.

경고하다

이 단계를 수행하기 전에 백업을 만드십시오. 상황이 심각하게 잘못될 수 있으며 유일하게 좋은 "실행 취소 버튼"은 백업입니다.

안전 조치

  1. 단일 사용자 모드로 재부팅합니다. 라이브 파일 시스템을 복제하므로 가능한 한 적은 작업만 실행하기를 원합니다.
  2. 현재 디렉터리를 /홈 디렉터리의 디렉터리와 같은 새 위치에 바인드 마운트합니다.
  3. 또한 홈 디렉토리에 새 논리 볼륨을 마운트합니다 /./home
  4. /기존 파일을 복사하고 /home/논리 볼륨으로 제외하려면 바인드 마운트를 사용하십시오. 바인드 마운트를 복사 소스로 사용하는 것이 중요합니다. 왜냐하면 모든 것이 마운트된 다른 파일 시스템을 복사하는 것을 방지하기 때문입니다 /.
  5. 기존 볼륨을 /home다시 바인드 마운트를 사용하여 새 /home논리 볼륨에 복사합니다.
  6. 재부팅하고 GRUB 메뉴가 나타나면 적절한 커널 항목을 선택하고 "e"를 누르십시오. 편집 모드로 들어가게 됩니다. 변수 realroot의 값이 가 되도록 변수를 추가/편집합니다 /dev/mapper/centos-root. 귀하의 initrd가 LVM을 지원한다고 가정합니다. 그런 다음 Enter 키를 누릅니다.
  7. 모든 것이 순조롭게 진행되면 이제 시스템이 루트 논리 볼륨에서 부팅됩니다.

안전하지 않은 단계

이제 프로세스를 실행 취소하기 어렵게 만드는 여러 단계가 시작됩니다. 상황이 그럴 수도 있지진짜문제가 발생했습니다. 보드카를 따르고(물론 후자를 기념하기 위해) 다음을 진행합니다.

  1. 오래된 것을 /어딘가에 설치하십시오.
  2. 제거/boot
  3. /boot이전 볼륨의 디렉터리를 /논리 볼륨 중 하나로 복사합니다. 원한다면 tmpfs에 복사할 수도 있습니다. 이는 다음 두 단계에 대한 임시 백업 역할만 합니다.
  4. 돌아올 수 없는 지점에 도달: mkfs.ext4 /dev/xvda1. 운영 체제는 더 이상 그대로 부팅되지 않습니다.
  5. mount /dev/xvda1 /boot
  6. /boot3단계에서 만든 백업으로 채웁니다.
  7. 파일 시스템의 UUID를 다시 확인 /boot하고 /etc/fstab필요한 경우 업데이트하십시오.
  8. 이제 GRUB2를 업데이트할 차례입니다. 실행하여 grub-mkconfig | less올바른 블록 장치를 선택하는지 확인하세요. realroot수동으로 추가한 항목과 동일한 항목이 표시되어야 합니다 . 모든 것이 정상이면 실행하여 grub-mkconfig -o /boot/grub/grub.cfg새 GRUB 구성을 작성합니다.
  9. 재시작. 두 가지 중 하나가 발생합니다. 시스템이 성공적으로 부팅되거나... 부팅되지 않습니다. 어쨌든, 여기가 보드카가 등장하는 곳입니다.

관련 정보