카테고리 보관물: Common

리눅스 VM Disk 증설 후 Partition 확장 및 LV 확장

연결된 디스크의 확장이 가능한 가상화 환경의 경우 디스크 사이즈를 증설할 수 있지만 OS에서 증설된 만큼 파티션과 볼륨을 확장해야 실제 파일시스템에서 사용할 수 있습니다.
그 과정을 정리했습니다.

0. 파일시스템 상태 확인

test@test:~$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              794M   14M  781M   2% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  9.8G  8.2G  1.1G  89% /
tmpfs                              3.9G   84K  3.9G   1% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          1.7G  242M  1.4G  15% /boot
tmpfs                              794M  4.0K  794M   1% /run/user/1000
  1. VM의 디스크 증설 후 확인
    디스크를 기존 16G에서 30G로 증설 하여 sda는 30G 이지만 실제 확장되어야할 sda3는 현재 14.2G 상태
test@test:~$ lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  63.4M  1 loop /snap/core20/1974
loop1                       7:1    0  63.7M  1 loop /snap/core20/2434
loop2                       7:2    0 111.9M  1 loop /snap/lxd/24322
loop3                       7:3    0  89.4M  1 loop /snap/lxd/31333
loop4                       7:4    0  53.3M  1 loop /snap/snapd/19457
loop5                       7:5    0  44.3M  1 loop /snap/snapd/23258
sda                         8:0    0    30G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0   1.8G  0 part /boot
└─sda3                      8:3    0  14.2G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0    10G  0 lvm  /
sdb                         8:16   0    50G  0 disk
sr0                        11:0    1  1024M  0 rom

2. 파티션 확장

test@test:~$ sudo parted
GNU Parted 3.4
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  1881MB  1879MB  ext4
 3      1881MB  17.2GB  15.3GB

(parted) resizepart 3
End?  [17.2GB]? 32.2GB
(parted) print
Model: VMware Virtual disk (scsi)
Disk /dev/sda: 32.2GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  Flags
 1      1049kB  2097kB  1049kB                     bios_grub
 2      2097kB  1881MB  1879MB  ext4
 3      1881MB  32.2GB  30.3GB

(parted) q
Information: You may need to update /etc/fstab.

3. 파티션 확장 확인

test@test:~$ lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  63.4M  1 loop /snap/core20/1974
loop1                       7:1    0  63.7M  1 loop /snap/core20/2434
loop2                       7:2    0 111.9M  1 loop /snap/lxd/24322
loop3                       7:3    0  89.4M  1 loop /snap/lxd/31333
loop4                       7:4    0  53.3M  1 loop /snap/snapd/19457
loop5                       7:5    0  44.3M  1 loop /snap/snapd/23258
sda                         8:0    0    30G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0   1.8G  0 part /boot
└─sda3                      8:3    0  28.2G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0    10G  0 lvm  /
sdb                         8:16   0    50G  0 disk
sr0                        11:0    1  1024M  0 rom

4. pv 사이즈 확인 및 확장

test@test:~$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               ubuntu-vg
  PV Size               <14.25 GiB / not usable 0
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              3647
  Free PE               1087
  Allocated PE          2560
  PV UUID               O2p8iY-2Jpm-WNGJ-viUf-nIt6-iw0x-rVgXAo

test@test:~$ sudo pvscan
  PV /dev/sda3   VG ubuntu-vg       lvm2 [<14.25 GiB / <4.25 GiB free]
  Total: 1 [<14.25 GiB] / in use: 1 [<14.25 GiB] / in no VG: 0 [0   ]

test@test:~$ sudo pvresize /dev/sda3
  Physical volume "/dev/sda3" changed
  1 physical volume(s) resized or updated / 0 physical volume(s) not resized
test@test:~$ sudo pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               ubuntu-vg
  PV Size               <28.24 GiB / not usable 1.31 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              7228
  Free PE               4668
  Allocated PE          2560
  PV UUID               O2p8iY-2Jpm-WNGJ-viUf-nIt6-iw0x-rVgXAo

5. vg 미할당량 확인 및 lv 확장

test@test:~$ sudo vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               28.23 GiB
  PE Size               4.00 MiB
  Total PE              7228
  Alloc PE / Size       2560 / 10.00 GiB
  Free  PE / Size       4668 / 18.23 GiB
  VG UUID               aUI3qM-tbml-FpOz-ccxw-1yk3-4hCo-a35uCK

test@test:~$ sudo lvdisplay
  --- Logical volume ---
  LV Path                /dev/ubuntu-vg/ubuntu-lv
  LV Name                ubuntu-lv
  VG Name                ubuntu-vg
  LV UUID                gFcvA9-fkuH-rNy8-wVka-93Th-r8X0-FB8giN
  LV Write Access        read/write
  LV Creation host, time ubuntu-server, 2023-12-05 01:04:17 +0000
  LV Status              available
  # open                 1
  LV Size                10.00 GiB
  Current LE             2560
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

test@test:~$ sudo lvextend -l +100%FREE -n /dev/ubuntu-vg/ubuntu-lv
  Size of logical volume ubuntu-vg/ubuntu-lv changed from 10.00 GiB (2560 extents) to 28.23 GiB (7228 extents).
  Logical volume ubuntu-vg/ubuntu-lv successfully resized.
test@test:~$ sudo vgdisplay
  --- Volume group ---
  VG Name               ubuntu-vg
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  4
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               28.23 GiB
  PE Size               4.00 MiB
  Total PE              7228
  Alloc PE / Size       7228 / 28.23 GiB
  Free  PE / Size       0 / 0
  VG UUID               aUI3qM-tbml-FpOz-ccxw-1yk3-4hCo-a35uCK

test@test:~$ lsblk
NAME                      MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
loop0                       7:0    0  63.4M  1 loop /snap/core20/1974
loop1                       7:1    0  63.7M  1 loop /snap/core20/2434
loop2                       7:2    0 111.9M  1 loop /snap/lxd/24322
loop3                       7:3    0  89.4M  1 loop /snap/lxd/31333
loop4                       7:4    0  53.3M  1 loop /snap/snapd/19457
loop5                       7:5    0  44.3M  1 loop /snap/snapd/23258
sda                         8:0    0    30G  0 disk
├─sda1                      8:1    0     1M  0 part
├─sda2                      8:2    0   1.8G  0 part /boot
└─sda3                      8:3    0  28.2G  0 part
  └─ubuntu--vg-ubuntu--lv 253:0    0  28.2G  0 lvm  /
sdb                         8:16   0    50G  0 disk
sr0                        11:0    1  1024M  0 rom

6. 파일시스템 사이즈 재조정 및 확인

test@test:~$ sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
resize2fs 1.46.5 (30-Dec-2021)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 4
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 7401472 (4k) blocks long.

test@test:~$ df -h
Filesystem                         Size  Used Avail Use% Mounted on
tmpfs                              794M   14M  781M   2% /run
/dev/mapper/ubuntu--vg-ubuntu--lv   28G  8.2G   19G  31% /
tmpfs                              3.9G   84K  3.9G   1% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
/dev/sda2                          1.7G  242M  1.4G  15% /boot
tmpfs                              794M  4.0K  794M   1% /run/user/1000

vi editor 텍스트 밀림 현상

  • Unix 환경에서 vi는 필수라고 봐도 되며 vi 없는 Unix는 상상도 하기가 어렵습니다…….
  • 그러나 그런 만큼 vi editor에 문제가 생기게 되면 script 파일이나 문서를 수정하는데 큰 곤란을 겪게 될 것입니다.
  • 그래서 vi editor를 사용하던 중 화면이 깨지거나 텍스트가 밀려서 입력되는 현상이 발생하면 당혹스러울 수 밖에 없을 것입니다.
  • 주로 발생하는 원인은 OS 언어를 한글로 설치하고 인코딩 설정이 불일치 할 경우 자주 발생하며 간헐적으로 계정의 환경설정 파일의 누락과도 연관이 있는 경우가 있었습니다.
  • Character encoding 또는 Remote character set 또는 Encoding 설정을 변경합니다.
  1. Default일 경우 UTF-8로 변경
  2. UTF-8일 경우 Default로 변경
  • vi 화면이 깨지는 현상의 경우 export TERM=vt100 을 실행 후 vi를 실행하도록 합니다.

vi editor

What is vi?

  • Unix 계열에서 사용되는 text 편집기
  • 최근의 Redhat 계열 Linux에서는 vim을 vi로 alias 처리(vim 패키지 미설치시 미적용)
  • UNIX와 Linux의 Terminal CLI 환경에서는 가장 기본적인 편집기이기 때문에 기본적인 사용키 정도는 익혀두는 것이 좋습니다.

3 modes of vi

  • Command Mode(명령) : esc 입력 상태, 기본값
  • Insert Mode(입력) : 편집 상태
  • Last Line Mode(명령) : Command Mode상 : “shift + ;” 입력 상태, 파일 또는 vi 상태 제어

Commande Mode Control

InputFunction
h왼쪽 이동
j위로 이동
k아래로 이동
l오른쪽 이동
^ or 0행의 가장 처음으로 이동
$행의 가장 끝으로 이동
gg제일 첫 행으로 이동
G제일 끝 행으로 이동
b왼쪽 특수문자 혹은 한단어의 처음으로 이동
B왼쪽 한단어의 처음으로 이동
x현재 커서 위치 삭제
X현재 커서가 위치한 앞 글자 삭제
dw현재 커서 위치 한단어 삭제
d$현재 커서 위치 행 삭제
dd현재 커서부터 마지막 행까지 삭제
CTRL+b한페이지 위로 이동
CTRL+f한 페이지 아래로 이동
숫자+G해당 숫자의 행으로 이동
w오른쪽 특수문자 혹은 한단어의 처음으로 이동
W오른쪽 한단어의 처음으로 이동
i현재 커서 앞쪽에 입력
I현재 커서 행의 맨 앞에서 입력
a현재 커서 뒤쪽에 입력
A현재 커서 행의 마지막에 입력
o현재 커서 행의 아래 줄에 입력
O현재 커서 행의 위쪽 줄에 입력현재 커서 행의 위쪽 줄에 입력
s현재 커서의 한 글자를 지우고 입력
S현재 커서의 행을 지우고 입력
r현재 커서의 한 글자를 교체
cw현재 커서의 한 단어 교체
uUndo(입력시 마다 이전 작업으로 이동)
숫자+yy현재 커서부터 숫자만큼의 행을 복사(1은 생략 가능)
yw현재 커서의 한 단어 복사
Y$현재 커서부터 마지막 행까지 복사
숫자+p복사한 내용을 현재 커서 다음에 붙여넣기(숫자 횟수 만큼)
숫자+P복사한 내용을 현재 커서 전에 붙여넣기(숫자 횟수 만큼)
/커서의 위치에서 아래로 검색
?커서의 위치에서 위로 검색
n검색 결과에서 아래 행 이동
N검색 결과에서 위 행 이동
모든 제어는 커서의 위치 기준

Insert Mode Control

  • i, a등의 Command Mode 제어키를 통해 입력 모드로 전환
  • 문서의 작성 또는 편집이 가능한 상태

Last Line Mode Control

InputFunction
:s/찾는문자열/치환문자열 현재 커서 행에서 검색, 치환
:1,10s/찾는문자열/치환문자열 1행에서 10행까지 검색, 치환
:%s/찾는문자열/치환문자열전체 행에서 검색, 치환
\+/특수문자를 검색하려면 해석방지를 위해 그 앞에 \를입력
:nohl검색등을 통해 하이라이트(Highlight)처리된 블럭을 해제
:set number행 번호 표시
:set nonumber행 번호 표시 취소
:set autoindent들여쓰기 설정
:set noautoindent들여쓰기 제거
:set list문단,조판부호 보기
:set nolist문단,조판부호 안보이게
:set ignorecase검색시 대소문자 구별 제거
:set noignorecase검색시 대소문자 구별
:set window=30한 화면당 행의 갯수 30개로 지정
:set all현재 설정된 vi 모든 설정값 보기
:q저장하지 않고 vi 종료
:q!읽기전용인 파일을 수정후 강제로 저장할때
:w현재내용을 저장
:w!읽기전용인 파일을 수정후 강제로 저장할때
:wq저장하고 종료
:wq!읽기전용인 파일을 수정후 강제로 저장하고 종료하기
:w “filename”새로운 파일명으로 저장
모든 제어는 커서의 위치 기준