Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 

우분투 설치 후 MBR 디스크 드라이브 여유 공간이 인식되지 않은 경우 - Logical Volume Management

Ubuntu 20.04.2 버전의 서버를 설치했더니 Ubuntu 운영체제가 설치된 sda 드라이브의 여유 공간이 터무니없이 적게 나옵니다.

$ df -h

Filesystem                         Size  Used Avail Use% Mounted on
udev                                12G     0   12G   0% /dev
tmpfs                              2.4G  1.5M  2.4G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  196G   11G  176G   6% /
tmpfs                               12G     0   12G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                               12G     0   12G   0% /sys/fs/cgroup
/dev/sdb                           1.8T   77M  1.7T   1% /datadisk
/dev/sda2                          976M  105M  805M  12% /boot
/dev/loop0                          70M   70M     0 100% /snap/lxd/19188
/dev/loop1                          56M   56M     0 100% /snap/core18/1944
/dev/loop2                          32M   32M     0 100% /snap/snapd/10707
tmpfs                              2.4G     0  2.4G   0% /run/user/1000

sda 디스크가 원래 1.4TB 용량인데 그 부분이 없는 것입니다. 반면 sdb 디스크의 경우 정상적으로 1.8TB가 잡혀 있고, 그다음 크게 잡힌 영역이 /dev/mapper/ubuntu--vg-ubuntu--lv인데 200GB 정도에 불과합니다. 즉, 1.2TB에 해당하는 공간이 안 보이는 것입니다.

그런데, cfdisk 명령어로 sda의 공간이 분명하게 1.4TB가 있음을 확인할 수 있습니다.

$ cfdisk

                                                           Disk: /dev/sda
                                       Size: 1.37 TiB, 1500301910016 bytes, 2930277168 sectors
                                    Label: gpt, identifier: D39CD9F7-5BFF-4045-B76B-88E7E376A3CB

    Device                                Start                   End              Sectors            Size Type
>>  /dev/sda1                              2048                  4095                 2048              1M BIOS boot                 
    /dev/sda2                              4096               2101247              2097152              1G Linux filesystem
    /dev/sda3                           2101248            2930274303           2928173056            1.4T Linux filesystem
    Free space                       2930274304            2930277134                 2831            1.4M

이에 대한 원인은 lsblk 명령어가 설명해 주는데요,

$ lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0 69.9M  1 loop /snap/lxd/19188
loop1                       7:1    0 55.4M  1 loop /snap/core18/1944
loop2                       7:2    0 31.1M  1 loop /snap/snapd/10707
sda                         8:0    0  1.4T  0 disk 
├─sda1                      8:1    0    1M  0 part 
├─sda2                      8:2    0    1G  0 part /boot
└─sda3                      8:3    0  1.4T  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0  200G  0 lvm  /
sdb                         8:16   0  1.8T  0 disk /datadisk
sr0                        11:0    1 1024M  0 rom  

(개인적인 추측으로) MBR 파티션이기 때문에 파티션을 4개 이상 나눌 수 없으므로 이에 대한 배려를 하는 차원에서 lvm(Logical Volume Management)로 처리를 해버린 듯합니다. (윈도우 운영체제와 비교하면, 파티션을 좀 더 생성할 수 있도록 확장 파티션 유형으로 구성하고 그중에서 "ubuntu--vg-ubuntu--lv" 파티션으로 200GB를 할당해 놓은 것입니다.) (참고로, LVM은 파일 시스템이 관리하고 있는 파티션의 용량을 동적으로 늘릴 수 있도록 ext3에서 도입됐다고 합니다.)

sda3 구역이 이미 LVM으로 초기화되었기 때문에 이것을 다시 ext4 파티션으로 포맷할 수도 없고 마운팅도 안 됩니다.

$ sudo mkfs.ext4 /dev/sda3
mke2fs 1.45.5 (07-Jan-2020)
/dev/sda3 contains a LVM2_member file system
Proceed anyway? (y,N) y
/dev/sda3 is apparently in use by the system; will not make a filesystem here!

$ sudo mount /dev/sda3 /extdisk
mount: /extdisk: unknown filesystem type 'LVM2_member'.

아마도 lvm을 제거해야 할 것 같은데, 그럼 "ubuntu--vg-ubuntu--lv" 영역도 초기화될 것이므로 (해당 파티션이 '/' 루트 디렉터리와 마운팅되어 있어) 사실상 운영체제를 다시 설치해야 하는 것과 마찬가지로 보입니다. 어쩔 수 없이, 다음의 글에서 설명하는 방법을 따라 그냥 lvm 내에 파티션을 생성하는 식으로 처리해야겠군요. ^^

LVM 기반 Ubuntu Disk 확장
; https://youngmind.tistory.com/entry/LVM-%EA%B8%B0%EB%B0%98-Ubuntu-Disk-%ED%99%95%EC%9E%A5

How to Manage and Use LVM (Logical Volume Management) in Ubuntu
; https://www.howtogeek.com/howto/40702/how-to-manage-and-use-lvm-logical-volume-management-in-ubuntu/




그나저나, LVM이 할당한 "ubuntu--vg-ubuntu--lv" 파티션의 영역이 200GB면 1.4TB 크기에 비해 다소 빈약해 보입니다. 해당 파티션이 나름 "/" 루트에 매핑되어 있기 때문에,

# df
Filesystem                         1K-blocks     Used  Available Use% Mounted on
udev                                12265428        0   12265428   0% /dev
tmpfs                                2461968     1488    2460480   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  205375464 10737880  184135440   6% /
tmpfs                               12309828        0   12309828   0% /dev/shm
tmpfs                                   5120        0       5120   0% /run/lock
tmpfs                               12309828        0   12309828   0% /sys/fs/cgroup
/dev/sdb                          1921803544    77852 1824033580   1% /datadisk
/dev/sda2                             999320   107032     823476  12% /boot
/dev/loop0                             71680    71680          0 100% /snap/lxd/19188
/dev/loop1                             56832    56832          0 100% /snap/core18/1944
/dev/loop2                             31872    31872          0 100% /snap/snapd/10707
tmpfs                                2461964        0    2461964   0% /run/user/1000

좀 더 용량을 추가해보려고 하는데요, 대략 300GB를 다음과 같이 lvextend 명령어로 추가할 수 있습니다.

# lvextend -L+300G /dev/mapper/ubuntu--vg-ubuntu--lv 
  Size of logical volume ubuntu-vg/ubuntu-lv changed from 200.00 GiB (51200 extents) to 500.00 GiB (128000 extents).
  Logical volume ubuntu-vg/ubuntu-lv successfully resized.

# df
Filesystem                         1K-blocks     Used  Available Use% Mounted on
...[생략]...
/dev/mapper/ubuntu--vg-ubuntu--lv  205375464 10737884  184135436   6% /
...[생략]...

그런데 df로 확인했는데도 여전히 용량 변화가 없습니다. ^^ 찾아보면 resize2fs로 다시 한번 파티션을 조정해야 한다고.

# resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 
resize2fs 1.45.5 (07-Jan-2020)
Filesystem at /dev/mapper/ubuntu--vg-ubuntu--lv is mounted on /; on-line resizing required
old_desc_blocks = 25, new_desc_blocks = 63
The filesystem on /dev/mapper/ubuntu--vg-ubuntu--lv is now 131072000 (4k) blocks long.

# df
Filesystem                         1K-blocks     Used  Available Use% Mounted on
udev                                12265428        0   12265428   0% /dev
tmpfs                                2461968     1488    2460480   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  515010816 10747436  481157664   3% /
tmpfs                               12309828        0   12309828   0% /dev/shm
tmpfs                                   5120        0       5120   0% /run/lock
tmpfs                               12309828        0   12309828   0% /sys/fs/cgroup
/dev/sdb                          1921803544    77852 1824033580   1% /datadisk
/dev/sda2                             999320   107032     823476  12% /boot
/dev/loop0                             71680    71680          0 100% /snap/lxd/19188
/dev/loop1                             56832    56832          0 100% /snap/core18/1944
/dev/loop2                             31872    31872          0 100% /snap/snapd/10707
tmpfs                                2461964        0    2461964   0% /run/user/1000

자, 그래서 다시 lsblk로 확인하면 "/" 루트 디렉터리의 용량이 500GB로 늘어났습니다.

# lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0 69.9M  1 loop /snap/lxd/19188
loop1                       7:1    0 55.4M  1 loop /snap/core18/1944
loop2                       7:2    0 31.1M  1 loop /snap/snapd/10707
sda                         8:0    0  1.4T  0 disk 
├─sda1                      8:1    0    1M  0 part 
├─sda2                      8:2    0    1G  0 part /boot
└─sda3                      8:3    0  1.4T  0 part 
  └─ubuntu--vg-ubuntu--lv 253:0    0  500G  0 lvm  /
sdb                         8:16   0  1.8T  0 disk /datadisk
sr0                        11:0    1 1024M  0 rom  




1.4TB 중 이제 900GB 정도가 남았는데요. 이것을 파티션으로 정의하기 위해 우선 LVM의 Volume group 이름을 알아야 합니다.

# 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               1.36 TiB
  PE Size               4.00 MiB
  Total PE              357442
  Alloc PE / Size       128000 / 500.00 GiB
  Free  PE / Size       229442 / <896.26 GiB
  VG UUID               6wIlpV-eCuS-0fF4-Qwa6-XDLm-znyS-xMVzpX

그럼, 해당 볼륨 그룹 이름으로 lvcreate 명령어를 사용해 새롭게 파티션을 생성할 수 있습니다.

# lvcreate -L 896G -n lvsda3data ubuntu-vg
WARNING: atari signature detected on /dev/ubuntu-vg/lvsda3data at offset 478. Wipe it? [y/n]: y
  Wiping atari signature on /dev/ubuntu-vg/lvsda3data.
  Logical volume "lvsda3data" created.

# lsblk
NAME                      MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
loop0                       7:0    0 69.9M  1 loop /snap/lxd/19188
loop1                       7:1    0 55.4M  1 loop /snap/core18/1944
loop2                       7:2    0 31.1M  1 loop /snap/snapd/10707
sda                         8:0    0  1.4T  0 disk 
├─sda1                      8:1    0    1M  0 part 
├─sda2                      8:2    0    1G  0 part /boot
└─sda3                      8:3    0  1.4T  0 part 
  ├─ubuntu--vg-ubuntu--lv 253:0    0  500G  0 lvm  /
  └─ubuntu--vg-lvsda3data 253:1    0  896G  0 lvm  
sdb                         8:16   0  1.8T  0 disk /datadisk
sr0                        11:0    1 1024M  0 rom  

당연히 이렇게 확보한 파티션을 포맷해야 하고,

# mkfs -t ext4 /dev/ubuntu-vg/lvsda3data
mke2fs 1.45.5 (07-Jan-2020)
Creating filesystem with 234881024 4k blocks and 58720256 inodes
Filesystem UUID: 58bf7379-6aa2-4299-be3d-b3020ec1c9ee
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (262144 blocks): 
done
Writing superblocks and filesystem accounting information:          
done

새로운 디렉터리를 만든 후 그쪽으로 마운트 시켜줍니다.

# mkdir /extdisk
# mount -t ext4 /dev/ubuntu-vg/lvsda3data /extdisk

# df -h
Filesystem                         Size  Used Avail Use% Mounted on
udev                                12G     0   12G   0% /dev
tmpfs                              2.4G  1.5M  2.4G   1% /run
/dev/mapper/ubuntu--vg-ubuntu--lv  492G   11G  459G   3% /
tmpfs                               12G     0   12G   0% /dev/shm
tmpfs                              5.0M     0  5.0M   0% /run/lock
tmpfs                               12G     0   12G   0% /sys/fs/cgroup
/dev/sdb                           1.8T   77M  1.7T   1% /datadisk
/dev/sda2                          976M  105M  805M  12% /boot
/dev/loop0                          70M   70M     0 100% /snap/lxd/19188
/dev/loop1                          56M   56M     0 100% /snap/core18/1944
/dev/loop2                          32M   32M     0 100% /snap/snapd/10707
tmpfs                              2.4G     0  2.4G   0% /run/user/1000
/dev/mapper/ubuntu--vg-lvsda3data  881G   77M  837G   1% /extdisk




참고로, 물리적 디스크는 다음과 같은 식으로 표기됩니다.
[디스크 장치 표기]
IDE의 경우, Primary master/slave, Secondary master/slave 각각에 대해 /dev/hda, /dev/hdb, /dev/hdc, /dev/hdd로 매핑
SCSI, SATA의 경우, 순서대로 /dev/sda, /dev/sdb,... 로 매핑

[파티션 표기]
각각의 장치별로 파티션 순서대로 표기, 예를 들어 sda에 2개의 파티션을 생성하면 sda1, sda2 방식으로 매핑

[MBR 방식의 파티션 분할 방식]
주 파티션은 최대 4개 허용(sda1, sda2, sda3, sda4)
만약 4개 이상의 파티션을 만들려면 3개의 주 파티션(sda1, sda2, sda3)을 만들고, 남은 하나는 확장 파티션(sda4)으로 내부에 12개(sda5 ~ sda16)까지 가능




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]







[최초 등록일: ]
[최종 수정일: 7/2/2024]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 121  122  123  124  125  126  127  128  129  130  131  [132]  133  134  135  ...
NoWriterDateCnt.TitleFile(s)
1755정성태9/22/201434275오류 유형: 241. Unity Web Player를 설치해도 여전히 설치하라는 화면이 나오는 경우 [4]
1754정성태9/22/201424608VC++: 80. 내 컴퓨터에서 C++ AMP 코드가 실행이 될까요? [1]
1753정성태9/22/201420604오류 유형: 240. Lync로 세미나 참여 시 소리만 들리지 않는 경우 [1]
1752정성태9/21/201441067Windows: 100. 윈도우 8 - RDP 연결을 이용해 VNC처럼 사용자 로그온 화면을 공유하는 방법 [5]
1751정성태9/20/201438933.NET Framework: 464. 프로세스 간 통신 시 소켓 필요 없이 간단하게 Pipe를 열어 통신하는 방법 [1]파일 다운로드1
1750정성태9/20/201423828.NET Framework: 463. PInvoke 호출을 이용한 비동기 파일 작업파일 다운로드1
1749정성태9/20/201423730.NET Framework: 462. 커널 객체를 위한 null DACL 생성 방법파일 다운로드1
1748정성태9/19/201425379개발 환경 구성: 238. [Synergy] 여러 컴퓨터에서 키보드, 마우스 공유
1747정성태9/19/201428428오류 유형: 239. psexec 실행 오류 - The system cannot find the file specified.
1746정성태9/18/201426098.NET Framework: 461. .NET EXE 파일을 닷넷 프레임워크 버전에 상관없이 실행할 수 있을까요? - 두 번째 이야기 [6]파일 다운로드1
1745정성태9/17/201423034개발 환경 구성: 237. 리눅스 Integration Services 버전 업그레이드 하는 방법 [1]
1744정성태9/17/201431052.NET Framework: 460. GetTickCount / GetTickCount64와 0x7FFE0000 주솟값 [4]파일 다운로드1
1743정성태9/16/201420985오류 유형: 238. 설치 오류 - Failed to get size of pseudo bundle
1742정성태8/27/201426958개발 환경 구성: 236. Hyper-V에 설치한 리눅스 VM의 VHD 크기 늘리는 방법 [2]
1741정성태8/26/201421332.NET Framework: 459. GetModuleHandleEx로 알아보는 .NET 메서드의 DLL 모듈 관계파일 다운로드1
1740정성태8/25/201432502.NET Framework: 458. 닷넷 GC가 순환 참조를 해제할 수 있을까요? [2]파일 다운로드1
1739정성태8/24/201426517.NET Framework: 457. 교착상태(Dead-lock) 해결 방법 - Lock Leveling [2]파일 다운로드1
1738정성태8/23/201422042.NET Framework: 456. C# - CAS를 이용한 Lock 래퍼 클래스파일 다운로드1
1737정성태8/20/201419755VS.NET IDE: 93. Visual Studio 2013 동기화 문제
1736정성태8/19/201425568VC++: 79. [부연] CAS Lock 알고리즘은 과연 빠른가? [2]파일 다운로드1
1735정성태8/19/201418162.NET Framework: 455. 닷넷 사용자 정의 예외 클래스의 최소 구현 코드 - 두 번째 이야기
1734정성태8/13/201419825오류 유형: 237. Windows Media Player cannot access the file. The file might be in use, you might not have access to the computer where the file is stored, or your proxy settings might not be correct.
1733정성태8/13/201426351.NET Framework: 454. EmptyWorkingSet Win32 API를 사용하는 C# 예제파일 다운로드1
1732정성태8/13/201434465Windows: 99. INetCache 폴더가 다르게 보이는 이유
1731정성태8/11/201427075개발 환경 구성: 235. 점(.)으로 시작하는 파일명을 탐색기에서 만드는 방법
1730정성태8/11/201422161개발 환경 구성: 234. Royal TS의 터미널(Terminal) 연결에서 한글이 깨지는 현상 해결 방법
... 121  122  123  124  125  126  127  128  129  130  131  [132]  133  134  135  ...