私はLinuxに少し慣れています。
LinuxにWindowsに似たスワップファイルがあるかどうか疑問に思っていましたか?
私のLinuxのメインハードディスクは容量が少ないので、新しいハードディスクを入れてマウントしました。今後のすべてのアプリのインストール(およびその他のインストール)を新しいハードディスクにリダイレクトする一般的な方法はありますか?
man mkswap
とman swap
とman swapon
私はLinuxに少し慣れています。
LinuxにWindowsに似たスワップファイルがあるかどうか疑問に思っていましたか?
私のLinuxのメインハードディスクは容量が少ないので、新しいハードディスクを入れてマウントしました。今後のすべてのアプリのインストール(およびその他のインストール)を新しいハードディスクにリダイレクトする一般的な方法はありますか?
man mkswap
とman swap
とman swapon
回答:
破壊的な変更を行う場合は、Linuxの論理ボリュームマネージャー(LVM2)を使用することをお勧めします。
異なるサイズの複数のディスクを一緒に組み合わせたり、ディスクを追加して再起動せずに論理「ディスク」の見かけ上のサイズを増やしたりすることができます。デフォルトのファイルシステムを使用している場合(ext4
最近)、ファイルシステムのオンラインサイズ変更も実行できるため、再度リブートする必要はありません。
RAMディスク(/dev/ram0
〜/dev/ram15
)を使用してこれを説明します。最初に、システムのパーティションを表示します。
# lvmdiskscan
/dev/ram0 [ 64.00 MiB]
/dev/ram1 [ 64.00 MiB]
/dev/sda1 [ 87.16 GiB]
/dev/ram2 [ 64.00 MiB]
/dev/ram3 [ 64.00 MiB]
/dev/ram4 [ 64.00 MiB]
/dev/ram5 [ 64.00 MiB]
/dev/sda5 [ 6.00 GiB]
/dev/ram6 [ 64.00 MiB]
/dev/ram7 [ 64.00 MiB]
/dev/ram8 [ 64.00 MiB]
/dev/ram9 [ 64.00 MiB]
/dev/ram10 [ 64.00 MiB]
/dev/ram11 [ 64.00 MiB]
/dev/ram12 [ 64.00 MiB]
/dev/ram13 [ 64.00 MiB]
/dev/ram14 [ 64.00 MiB]
/dev/ram15 [ 64.00 MiB]
/dev/sdb1 [ 294.09 GiB]
/dev/sdb5 [ 4.00 GiB]
0 disks
20 partitions
0 LVM physical volume whole disks
0 LVM physical volumes
それでは、2ディスクのセットアップを作成し、後で3ディスクに拡張します。最初に、LVMで使用するために「ディスク」をフォーマットします。このステップでpv
は、物理ボリューム、つまりデータを保存する実際のデバイスを表します。
# pvcreate /dev/ram0
Physical volume "/dev/ram0" successfully created
# pvcreate /dev/ram1
Physical volume "/dev/ram1" successfully created
# pvs
PV VG Fmt Attr PSize PFree
/dev/ram0 vg_main lvm2 a- 60.00m 60.00m
/dev/ram1 vg_main lvm2 a- 60.00m 60.00m
次に、ボリュームグループを作成します。ボリュームグループは、基本的にそれらを単一のパーティション化されていない「ディスク」に結合します。
# vgcreate vg_main /dev/ram0 /dev/ram1
Volume group "vg_main" successfully created
# vgs
VG #PV #LV #SN Attr VSize VFree
vg_main 2 0 0 wz--n- 120.00m 120.00m
そして、論理ボリュームを作成して、この結合されたディスクを「パーティション」します。使用可能なすべてのスペースを使用します。
# lvcreate --extents 100%VG --name lv_main vg_main
Logical volume "lv_main" created
# lvs
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv_main vg_main -wi-a- 120.00m
これで、120MBの仮想パーティションが作成され、自分のものを保存できます。デバイスノードは、より詳細なlvdisplay
コマンドを使用して見つけることができます。
# lvdisplay
--- Logical volume ---
LV Name /dev/vg_main/lv_main
VG Name vg_main
LV UUID tsKWeD-tjpB-yh32-Ong3-Jp7C-erT8-LRVlTg
LV Write Access read/write
LV Status available
# open 0
LV Size 120.00 MiB
Current LE 30
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
したがって、ファイルシステムをに配置する必要があります/dev/vg_main/lv_main
。これはdd
、などのツールを使用して既存のものをコピーするか、このデモでは新しいものを作成することを意味する場合があります。
# mkfs.ext4 -L fs_main /dev/vg_main/lv_main
mke2fs 1.42 (29-Nov-2011)
Discarding device blocks: done
Filesystem label=fs_main
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
30720 inodes, 122880 blocks
6144 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
15 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks:
8193, 24577, 40961, 57345, 73729
Allocating group tables: done
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
だから今、私はこの(空の)ファイルシステムをマウントして、いくつかのテストデータでそれを埋めることができます:
# mkdir /tmp/demo
# mount /dev/vg_main/lv_main /tmp/demo
# df -h /tmp/demo
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_main-lv_main 117M 5.6M 105M 6% /tmp/demo
# ls /tmp/demo
lost+found
# dd if=/dev/zero of=/tmp/demo/bigfile
dd: writing to `/tmp/demo/bigfile': No space left on device
226701+0 records in
226700+0 records out
116070400 bytes (116 MB) copied, 0.982532 s, 118 MB/s
# ls -lh /tmp/demo
total 111M
-rw-r--r-- 1 root root 111M Mar 10 18:50 bigfile
drwx------ 2 root root 12K Mar 10 18:47 lost+found
私のファイルシステムは完全に一杯になりました!これは、Free PE(物理エクステント)/サイズ(バイト)df
を使用vgdisplay
してチェックし、結合ディスクレベルでファイルシステムレベルで検証できます。
# df -h /tmp/demo
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_main-lv_main 117M 117M 0 100% /tmp/demo
# vgdisplay
--- Volume group ---
VG Name vg_main
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 2
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 1
Open LV 1
Max PV 0
Cur PV 2
Act PV 2
VG Size 120.00 MiB
PE Size 4.00 MiB
Total PE 30
Alloc PE / Size 30 / 120.00 MiB
Free PE / Size 0 / 0
VG UUID zWxBml-xdZU-8wgh-IK1w-ij1N-Z3eo-sRtri3
それでは、もっと大きくしましょう!/dev/ram2
それを実行中のシステムにホットプラグしたばかりの素敵な新しいSATAディスクのふりをしてみましょう。これを使用して、ファイルシステム全体のサイズを増やしたいと思います。
前と同様に、pvcreate
LVMで使用する「ディスク」を準備するために使用します。
# pvcreate /dev/ram2
Physical volume "/dev/ram2" successfully created
次に、結合ディスク(ボリュームグループ)を拡張し、vg_main
空き領域があることを確認します。
# vgextend vg_main /dev/ram2
Volume group "vg_main" successfully extended
# vgdisplay
--- Volume group ---
VG Name vg_main
System ID
Format lvm2
Metadata Areas 3
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 3
Act PV 3
VG Size 180.00 MiB
PE Size 4.00 MiB
Total PE 45
Alloc PE / Size 30 / 120.00 MiB
Free PE / Size 15 / 60.00 MiB
VG UUID zWxBml-xdZU-8wgh-IK1w-ij1N-Z3eo-sRtri3
「パーティション」(論理ボリューム)は新しいディスクを追加する前と同じサイズであるため、ファイルシステムの空き領域はまだありません。
# df -h /tmp/demo
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_main-lv_main 117M 117M 0 100% /tmp/demo
# lvdisplay
--- Logical volume ---
LV Name /dev/vg_main/lv_main
VG Name vg_main
LV UUID tsKWeD-tjpB-yh32-Ong3-Jp7C-erT8-LRVlTg
LV Write Access read/write
LV Status available
# open 1
LV Size 120.00 MiB
Current LE 30
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
ここに魔法があります-論理ボリュームのサイズを変更し、LVM2にファイルシステムのサイズを変更するように指示します。
# lvresize --extents 100%VG --resizefs /dev/vg_main/lv_main
fsck from util-linux 2.20.1
e2fsck 1.42 (29-Nov-2011)
/dev/mapper/vg_main-lv_main is mounted.
WARNING!!! The filesystem is mounted. If you continue you ***WILL***
cause ***SEVERE*** filesystem damage.
Do you really want to continue<n>?
この恐ろしい警告は、実際にはファイルシステムのサイズ変更に関係するのではなくfsck
、LVM2がマウントされたファイルシステムに対して実行しようとしているプリフライトに関係しています。明らかにこの恐ろしいプロンプトを断り、「いいえ」と答えます。
Do you really want to continue<n>? no
check aborted.
Extending logical volume lv_main to 180.00 MiB
Logical volume lv_main successfully resized
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/dm-0 is mounted on /tmp/demo; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/dm-0 to 184320 (1k) blocks.
The filesystem on /dev/dm-0 is now 184320 blocks long.
次に、LVM2は、要求したファイルシステムのオンラインサイズ変更を続行します。出来上がり!
# df -h /tmp/demo
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_main-lv_main 175M 117M 49M 71% /tmp/demo
さらにファイルを作成できるようになりました。
# dd if=/dev/zero of=/tmp/demo/another_file
dd: writing to `/tmp/demo/another_file': No space left on device
118751+0 records in
118750+0 records out
60800000 bytes (61 MB) copied, 0.556078 s, 109 MB/s
# ls -lh /tmp/demo
total 169M
-rw-r--r-- 1 root root 58M Mar 10 19:04 another_file
-rw-r--r-- 1 root root 111M Mar 10 18:52 bigfile
drwx------ 2 root root 12K Mar 10 18:47 lost+found
1)Linuxにはスワップファイルがなく、Linuxにはスワップパーティションがあります。初期設定の後に/ etc / fstabファイルをルートとして編集してスワップパーティションを変更した後、その場所を変更できますが、別のパーティションを作成する必要があります。
2)Linuxにはすべての実行可能ファイルがシステムディレクトリに散在しているため、これを実現する簡単な方法はありません。
use whole disk
標準として見たので、後でスワップファイルを追加するかmanual partition
、スワップパーティションを作成するために使用する必要があります。OPに2 GB以上のRAMがある場合、彼は大きな映画などのビデオ編集をしたくない限り、スワップなしでシステムを実行できます。