暗号化された部分、/boot
パーティション、およびパーティション化されていない残りの部分を含むシステムのインストール中に、パーティション表を手動でプログラムしました。まず、パーティション(それぞれ手動で)を作成し、それを論理ボリュームに入れました。論理ボリュームはimportant
ボリュームグループで埋められますa
(そうでない場合は修正し、これを行う必要があることを知っている場合はこの説明を削除してください)。その後、論理ボリュームを暗号化してLUKS
システムをインストールしました。
パーティションテーブル
$ LC_ALL=C sudo lsblk
[sudo] password for sj126:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 931.5G 0 disk
|-sda1 8:1 0 953M 0 part /boot
|-sda2 8:2 0 1K 0 part
|-sda3 8:3 0 16G 0 part [SWAP]
|-sda4 8:4 0 100G 0 part
|-sda5 8:5 0 7.5G 0 part
| `-experiment-test 254:0 0 418.3G 0 lvm
| `-experiment-test_crypt 254:1 0 418.3G 0 crypt /
|-sda6 8:6 0 14G 0 part
| `-experiment-test 254:0 0 418.3G 0 lvm
| `-experiment-test_crypt 254:1 0 418.3G 0 crypt /
|-sda7 8:7 0 372.5G 0 part
| `-experiment-test 254:0 0 418.3G 0 lvm
| `-experiment-test_crypt 254:1 0 418.3G 0 crypt /
|-sda8 8:8 0 7G 0 part
| `-experiment-test 254:0 0 418.3G 0 lvm
| `-experiment-test_crypt 254:1 0 418.3G 0 crypt /
|-sda9 8:9 0 7G 0 part
| `-experiment-test 254:0 0 418.3G 0 lvm
| `-experiment-test_crypt 254:1 0 418.3G 0 crypt /
|-sda10 8:10 0 7G 0 part
| `-experiment-test 254:0 0 418.3G 0 lvm
| `-experiment-test_crypt 254:1 0 418.3G 0 crypt /
|-sda11 8:11 0 2.3G 0 part
| `-experiment-test 254:0 0 418.3G 0 lvm
| `-experiment-test_crypt 254:1 0 418.3G 0 crypt /
`-sda12 8:12 0 1.1G 0 part
`-experiment-test 254:0 0 418.3G 0 lvm
`-experiment-test_crypt 254:1 0 418.3G 0 crypt /
$ LC_ALL=C sudo partitionmanager
QStandardPaths: XDG_RUNTIME_DIR not set, defaulting to '/tmp/runtime-root'
Loaded backend plugin: "pmlibpartedbackendplugin"
"Using backend plugin: pmlibpartedbackendplugin (1)"
"Scanning devices..."
"Device found: [...]"
blkid: unknown file system type "" on "/dev/sda2"
"Partition ‘/dev/sda2’ is not properly aligned (first sector: 1955838, modulo: 2046)."
"Scan finished."
要点は、私のディレクトリに移動すると、そのディレクトリだけが(別々の)パーティションとして表示され、残りは/boot
同じ/dev/sda2
パーティション/
にあるように見えることです。たとえば、dev/sda{5,..12}
含めるパーティションは/home
同じ論理ボリュームに保持され、そこにもマウントする必要があります。
編集する:以下は私のパーティションテーブルです(更新済み)。パーティション3と4はソリューションの始まりなので、今は無視しても構いません。欠けている唯一のものはディスクラベルとディスク識別子です。
$ LC_ALL=C sudo fdisk -l /dev/sda
Disk /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectors
Disk model: [...]
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disklabel type: dos
Disk identifier: [...]
Device Boot Start End Sectors Size Id Type
/dev/sda1 * 2048 1953791 1951744 953M 83 Linux
/dev/sda2 1955838 879298559 877342722 418.4G 5 Extended
/dev/sda3 879300608 912855039 33554432 16G 82 Linux swap / Solaris
/dev/sda4 * 912857088 1122572287 209715200 100G 83 Linux
/dev/sda5 1955840 17577983 15622144 7.5G 8e Linux LVM
/dev/sda6 17580032 46874623 29294592 14G 8e Linux LVM
/dev/sda7 46876672 828125183 781248512 372.5G 8e Linux LVM
/dev/sda8 828127232 842774527 14647296 7G 8e Linux LVM
/dev/sda9 842776576 857423871 14647296 7G 8e Linux LVM
/dev/sda10 857425920 872073215 14647296 7G 8e Linux LVM
/dev/sda11 872075264 876955647 4880384 2.3G 8e Linux LVM
/dev/sda12 876957696 879298559 2340864 1.1G 8e Linux LVM
Partition 2 does not start on physical sector boundary.
Partition table entries are not in disk order.
$ LC_ALL=C sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
test experiment -wi-ao---- <418.32g
$ LC_ALL=C sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sda10 experiment lvm2 a-- 6.98g 0
/dev/sda11 experiment lvm2 a-- 2.32g 0
/dev/sda12 experiment lvm2 a-- 1.11g 0
/dev/sda5 experiment lvm2 a-- <7.45g 0
/dev/sda6 experiment lvm2 a-- 13.96g 0
/dev/sda7 experiment lvm2 a-- <372.53g 0
/dev/sda8 experiment lvm2 a-- 6.98g 0
/dev/sda9 experiment lvm2 a-- 6.98g 0
答え1
ディスクはMBRパーティションテーブルを使用して分割されます。ディスクパーティションは次のとおりです。
sda1
:デフォルトのパーティションはファイルシステムを使用してフォーマットされています/boot
。sda2
:次の論理区画を含む拡張区画:sda5
tosda12
:LVM物理ディスクとしてフォーマットされた論理パーティション。
sda3
: 基本パーティション。フォーマットされているかどうかは言えません。sda4
: 基本パーティション。フォーマットされているかどうかは言えません。
LVM物理ディスクはLVMボリュームグループのメンバーsda5
です。sda12
experiment
LVMボリュームグループには、experiment
名前付きの単一のLVM論理ボリュームが含まれていますtest
。 LVM 論理ボリュームはexperiment-test
LUKS コンテナとしてフォーマットされます。 LUKSコンテナのペイロード名はexperiment-test_crypt
ファイルシステムを使用してフォーマットされています/
。
気づく:
sda2
拡張パーティションです。これは論理区画用のコンテナーであり、ファイルシステムを使用してフォーマットおよびマウントすることはできません。논리 파티션은
sda5
모두sda12
LVM 물리 디스크로 포맷되며 LVM 볼륨 그룹의 구성원이 됩니다experiment
. LVM 볼륨 그룹 실험의 모든 공간은test
LUKS 형식으로 논리 볼륨에 할당됩니다.
答え2
LVM의 목적은 물리적 저장 장치(전체 디스크 또는 파티션)의 크기를 논리 볼륨(일반적으로 파일 시스템 포함)의 크기에서 분리하는 것입니다.
따라서 단일 디스크를 여러 파티션으로 분할한 다음 모든 파티션을 LVM 물리적 볼륨(PV)으로 동일한 볼륨 그룹(VG)에 추가하는 것은 입력 연습을 제외하고는 별로 유용하지 않습니다. 기본적으로 시작한 곳에서 끝납니다. 차별화되지 않은 큰 덩어리의 스토리지를 사용하면 이를 유용한 덩어리로 분할해야 합니다.
각 PV는 한 번에 하나의 VG에만 속할 수 있습니다. 모든 PV는 experiment
VG의 구성원이므로 질문에서 언급한 VG는 분명히 더 이상 존재하지 않습니다. 이는 a
해당 VG에 있어야 했던 논리 볼륨(LV)이 이제 사라져서 덮어쓰여졌음을 의미합니다. important
죄송합니다.
솔직히 말해서, LVM 설정에 대한 귀하의 설명은 제가 보기에는... 거꾸로 또는 어쩌면 내부에서 밖으로 나온 것 같습니다. 아래 설명이 개념을 명확히 하는 데 도움이 되기를 바랍니다.
새 디스크에서 LVM의 이점을 최대화하려면 일반적으로 다음 두 가지 중 하나를 수행해야 합니다.
시스템 디스크인 경우 시스템 펌웨어 요구 사항(예: UEFI 시스템의 EFI 시스템 파티션 또는
/boot
펌웨어가 디스크의 전체 크기를 처리할 수 없는 매우 오래된 BIOS 시스템)을 충족하는 데 필요한 모든 것을 생성하고 디스크를 덮는 단일 대형 파티션 나머지 부분은 LVM PV로 사용됩니다. 펌웨어가 특정 제한 사항을 설정하지 않은 경우에도(예: LVM과 함께 최신 버전의 GRUB 사용 및 BIOS 스타일 부팅에 대한 암호화 지원) 부트/boot
로더 구성 요소 모듈과 커널 및 initramfs 파일은 부팅에 유용합니다. 중요한 내용은 더 쉬운 문제 해결을 위해 대규모 다중 디스크 LVM 볼륨 그룹의 "어디든"이 아닌 특정 "부팅 디스크"에 확실히 포함되어 있습니다.데이터 디스크인 경우 파티션을 전혀 사용하지 않고 전체 디스크를 LVM PV로 사용하도록 선택할 수 있습니다. 이는 디스크가 실제로 SAN LUN인 경우 이점이 될 수 있습니다. LUN을 확장해야 하는 경우 전체 디스크 LVM PV를 즉시 확장할 수 있습니다. SAN 관리자가 LUN의 크기를 늘린 후에는 먼저 파티션 테이블을 조작할 필요 없이 확장된 크기를 즉시 사용하기 위해 몇 가지 명령만 사용하면 됩니다. 반면, 다른 운영 체제에서는 전체 디스크 LVM PV가 유효한 데이터가 포함된 디스크로 인식되지 않습니다. 이러한 디스크는 다른 운영 체제를 사용하여 액세스할 경우 실수로 쉽게 다시 포맷될 수 있습니다. 이러한 위험을 최소화하려면 전체 디스크를 포함하는 파티션을 생성하고 이를 LVM PV로 사용할 수 있습니다.
여러 개의 PV를 갖는 것 자체는 큰 문제가 아니지만, 물리적 디스크당 여러 개의 PV를 갖는 데에는 최소한 몇 가지 특정한 이유가 있어야 합니다. 이전 이중 부팅 운영 체제 설치에서 사용된 공간을 회수하는 것이 그러한 타당한 이유 중 하나입니다. 반면에 여러 개의 VG(하나면 충분함)를 갖는 것은 고통스러울 수 있습니다.
하나 이상의 PV가 있으면 하나 이상의 VG를 생성할 수 있습니다. 디스크가 하나만 있는 경우 일반적으로 여러 VG를 만들 이유가 없습니다. 여러 개의 물리적 디스크가 있는 경우 어떤 이유로든 디스크를 서로 별도로 유지해야 하는지, 아니면 저장되는 데이터의 전체 수명 동안 디스크가 함께 유지된다고 가정할 수 있는지 결정해야 합니다. 디스크를 함께 배치할 수 있는 경우 모든 PV를 단일 VG에 추가할 수 있습니다. 이렇게 하면 LV로 분할할 수 있는 대규모 스토리지 풀이 제공됩니다.당신이 원하는 대로- VG에 사용 가능한 총 공간이 충분하다면 LV를 생성할 수 있습니다.단일 PV의 한계를 넘어.
LVM을 사용할 때 LV는 주로 기존 파티션을 파일 시스템의 컨테이너로 대체합니다. LV를 확장해야 하는 경우 VG의 하나 이상의 PV에 아직 할당되지 않은 공간이 있는 한 온라인에서도 이를 수행할 수 있습니다. 할당되지 않은 공간이 부족한 경우 VG에 새 PV를 추가(예, 핫 추가라도)할 수 있습니다.그 다음에그 위에 LV를 확장하세요.
VG 범위 내에서 pvmove
필요한 경우 이 명령을 사용하여 LV를 이동할 수 있습니다. VG가 활성 상태이고 LV의 파일 시스템이 마운트되어 사용 중인 경우에도 가능합니다. 새 디스크를 이전 VG에 PV로 추가한 다음 pvmove
VG에서 디스크 제거를 사용하여 이전 디스크에서 새 디스크로 데이터를 이동하여 더 큰 새 물리적 디스크로 데이터를 마이그레이션할 수 있습니다.이 모든 작업은 아무것도 제거하지 않고도 수행할 수 있습니다.
특정 디스크를 데이터가 포함된 다른 시스템으로 이동해야 할 것으로 예상되는 경우 해당 디스크에 대해 별도의 볼륨 그룹을 생성할 수 있습니다. 또는 다른 시스템이 다른 Linux가 아닌 경우 모든 시스템에서 해당 디스크에서 LVM을 사용하지 않을 수 있습니다. 이것이 아마도 LVM을 사용하여 일반 Linux 설정에서 여러 VG를 생성하는 유일한 실제 이유일 것입니다.
LVM을 사용하여 암호화를 설정하는 방법에는 두 가지가 있습니다.
- 단일 암호화 비밀번호로 모든 LV를 한 번에 잠금 해제할 수 있도록 물리적 디스크/파티션을 LVM PV로 설정하기 전에 암호화할 수 있습니다(계층 구성: 디스크->파티션->암호화 장치->PV->LV).
- あるいは、PV、VG、およびLVを最初に設定してから、1つ以上のLVにそれぞれ暗号化を設定して、必要に応じて異なるLVが異なる暗号化パスワードを持つことを許可できます。 (階層的:ディスク->パーティション->PV->LV->暗号化装置)