내 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 -h
197G 입니다. - 그러나 루트에 대한 설치가 올바르지 않습니다. 결과에서
df -h
아래 치수는/dev/xvda1
에 포함/boot
7.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는 새 파일 시스템에 대해 알지 못하므로 /
원본에서 시작하려고 시도합니다 /
. 다음은 이러한 논리 볼륨을 사용하는 방법에 대한 개요입니다.
경고하다
이 단계를 수행하기 전에 백업을 만드십시오. 상황이 심각하게 잘못될 수 있으며 유일하게 좋은 "실행 취소 버튼"은 백업입니다.
안전 조치
- 단일 사용자 모드로 재부팅합니다. 라이브 파일 시스템을 복제하므로 가능한 한 적은 작업만 실행하기를 원합니다.
- 현재 디렉터리를
/
홈 디렉터리의 디렉터리와 같은 새 위치에 바인드 마운트합니다. - 또한 홈 디렉토리에 새 논리 볼륨을 마운트합니다
/
./home
/
기존 파일을 복사하고/home
새/
논리 볼륨으로 제외하려면 바인드 마운트를 사용하십시오. 바인드 마운트를 복사 소스로 사용하는 것이 중요합니다. 왜냐하면 모든 것이 마운트된 다른 파일 시스템을 복사하는 것을 방지하기 때문입니다/
.- 기존 볼륨을
/home
다시 바인드 마운트를 사용하여 새/home
논리 볼륨에 복사합니다. - 재부팅하고 GRUB 메뉴가 나타나면 적절한 커널 항목을 선택하고 "e"를 누르십시오. 편집 모드로 들어가게 됩니다. 변수
realroot
의 값이 가 되도록 변수를 추가/편집합니다/dev/mapper/centos-root
. 귀하의 initrd가 LVM을 지원한다고 가정합니다. 그런 다음 Enter 키를 누릅니다. - 모든 것이 순조롭게 진행되면 이제 시스템이 루트 논리 볼륨에서 부팅됩니다.
안전하지 않은 단계
이제 프로세스를 실행 취소하기 어렵게 만드는 여러 단계가 시작됩니다. 상황이 그럴 수도 있지진짜문제가 발생했습니다. 보드카를 따르고(물론 후자를 기념하기 위해) 다음을 진행합니다.
- 오래된 것을
/
어딘가에 설치하십시오. - 제거
/boot
/boot
이전 볼륨의 디렉터리를/
논리 볼륨 중 하나로 복사합니다. 원한다면 tmpfs에 복사할 수도 있습니다. 이는 다음 두 단계에 대한 임시 백업 역할만 합니다.- 돌아올 수 없는 지점에 도달:
mkfs.ext4 /dev/xvda1
. 운영 체제는 더 이상 그대로 부팅되지 않습니다. mount /dev/xvda1 /boot
/boot
3단계에서 만든 백업으로 채웁니다.- 파일 시스템의 UUID를 다시 확인
/boot
하고/etc/fstab
필요한 경우 업데이트하십시오. - 이제 GRUB2를 업데이트할 차례입니다. 실행하여
grub-mkconfig | less
올바른 블록 장치를 선택하는지 확인하세요.realroot
수동으로 추가한 항목과 동일한 항목이 표시되어야 합니다 . 모든 것이 정상이면 실행하여grub-mkconfig -o /boot/grub/grub.cfg
새 GRUB 구성을 작성합니다. - 재시작. 두 가지 중 하나가 발생합니다. 시스템이 성공적으로 부팅되거나... 부팅되지 않습니다. 어쨌든, 여기가 보드카가 등장하는 곳입니다.