Linuxインストールスワップとディスク


0

私はLinuxに少し慣れています。

  • LinuxにWindowsに似たスワップファイルがあるかどうか疑問に思っていましたか?

  • 私のLinuxのメインハードディスクは容量が少ないので、新しいハードディスクを入れてマウントしました。今後のすべてのアプリのインストール(およびその他のインストール)を新しいハードディスクにリダイレクトする一般的な方法はありますか?


通常はスワップファイルではありませんが(可能性もあります)、スワップパーティションです。そして、それらを複数持つこともできます。しかし、あなたの質問はソースコードに関係していないので、間違った場所で質問しています。
バジルStarynkevitch

1
2)あなたのディスク間で負荷を共有する最も簡単な方法は、スワップ用1)(そのマウントポイントにする、または新しいマウントポイントに家のシンボリックリンクを作るのいずれか)、新しいディスク上の/ home / *を置くことです:man mkswapman swapman swapon

どのような分布ですか?
ott--

回答:


1

破壊的な変更を行う場合は、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ディスクのふりをしてみましょう。これを使用して、ファイルシステム全体のサイズを増やしたいと思います。

前と同様に、pvcreateLVMで使用する「ディスク」を準備するために使用します。

# 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

0

1)Linuxにはスワップファイルがなく、Linuxにはスワップパーティションがあります。初期設定の後に/ etc / fstabファイルをルートとして編集してスワップパーティションを変更した後、その場所を変更できますが、別のパーティションを作成する必要があります。

2)Linuxにはすべての実行可能ファイルがシステムディレクトリに散在しているため、これを実現する簡単な方法はありません。


3
Linuxでは、スワップパーティションなしでスワップファイルを作成できます。それはただ異常であり、わずかに効率が悪いです。
バジルStarynkevitch

しかし、手動でセットアップする必要があり、質問者は決してしなかったと思います。さらに、パーティションをファイルに移動できるとは思いません。可能であれば、新しいスワップパーティションを作成する方が簡単です:)

1)投機的なようです。スワップファイルが作成されてすぐに使用できるわけではないからといって、将来の読者がスワップファイルをファイルとして設定しないというわけではありません。
ロレンツォフォンマッターホルン

ディストリビューションに依存します。私はuse whole disk標準として見たので、後でスワップファイルを追加するかmanual partition、スワップパーティションを作成するために使用する必要があります。OPに2 GB以上のRAMがある場合、彼は大きな映画などのビデオ編集をしたくない限り、スワップなしでシステムを実行できます。
-ott--

@ ott--確かに本当ですが、あなたは私の主張を逃したようです。誰かが何らかの構成に制限されることを想定することはできません。
ロレンツォフォンマッターホルン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.