1. 序章

管理タスクでは、システムに関する詳細情報が必要になることがよくあります。 したがって、Linuxの場合、カーネルのバージョンと配布に関する知識は私たちにとって非常に基本的です。

さらに、利用可能な物理ストレージに関する情報が必要です。 したがって、Linuxのコンテキストでは、ディスクパーティションを一覧表示する必要があります。

この目標を達成するのに役立つLinuxコマンドを見ていきます。

2. カーネルデータ用のunameコマンド

uname コマンドは、カーネルに関する一連の情報を返します。 それでは、カーネル名を確認しましょう。

$ uname
Linux

2.1. unameのオプション

より具体的な情報を取得するには、オプションを使用する必要があります。 したがって、すべてのフィールドで–aスイッチを使用しましょう:

$ uname -a
Linux 10.0.2.15 5.14.10-300.fc35.x86_64 #1 SMP Thu Oct 7 20:48:44 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux

それでは、カーネルに関連する各情報を独自のスイッチで確認してみましょう。

したがって、カーネル名には、 -s (または何も使用しない)を使用しましょう。

$ uname -s
Linux

次に、カーネルリリースでは、-rを使用します。

$ uname -r
5.14.10-300.fc35.x86_64

最後に、カーネルバージョンでは、-vを使用する必要があります。

$ uname -v
#1 SMP Thu Oct 7 20:48:44 UTC 2021

それに気づきましょう、 カーネル関連のデータは、カーネルのビルド中にコンパイルされるだけです。 ランタイムでは、それらはunameシステムコールで取得されます。

2.2. 可用性

このコマンドは、sh-utilsまたはcoreutilsパッケージの一部です。 したがって、ほとんどすべてのディストリビューションでそれを見つける必要があります。

3. lsb_releaseを使用した配布情報

次に、lsb_releaseコマンドを使用してLinuxディストリビューションの詳細について学習します。

$ lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Fedora
Description:	Fedora release 35 (Thirty Five)
Release:	35
Codename:	ThirtyFive

つまり、オペレーティングシステムがFedora35であることがわかります。

さらに、このコマンドは Linux Standard Base (LSB)の概念に基づいて構築されていることに注意してください。

したがって、LSB準拠の配布の場合、コマンドは / etc /lsb-releaseおよび/etc /distrib-releaseファイルから情報を収集します。 さらに、/etc/lsb-release.dフォルダー内のファイルの名前を解析します。

ただし、Fedora 35の例では、フォルダー/etc/lsb-release.dのみが存在します。

特定のディストリビューションでは、コマンドをそのまま使用することはできません。 lsb_releaseパッケージが付属しています。

4. os-releaseファイルの解析

/ etc / os-release ファイルの内容を解析することで、lsb_releaseを使用した場合と同様の効果を得ることができます。 それでは、catそれをしましょう。

$ cat /etc/os-release
NAME="Fedora Linux"
VERSION="35 (Workstation Edition)"
ID=fedora
VERSION_ID=35
VERSION_CODENAME=""
PLATFORM_ID="platform:f35"
PRETTY_NAME="Fedora Linux 35 (Workstation Edition)"
# more output skipped ...

ここで、より具体的に、grepを使用してPRETTY_NAMEのみを表示しましょう。

$ grep '^PRETTY_NAME' /etc/os-release
PRETTY_NAME="Fedora Linux 35 (Workstation Edition)"

この機能はsystemdマネージャーの一部であるため、ほとんどのLinuxディストリビューションで見つけることができます。 ただし、すべてのフィールドに入力する必要はありません。

5. hostnamectlコマンド

hostnamectlコマンドは、システムのホスト名を管理します。システムのさまざまな機能に関連するコマンドを受け入れます。

したがって、 status コマンドを使用して、カーネルとディストリビューションに関する情報を取得します。

$ hostnamectl status
   Static hostname: n/a
Transient hostname: 10.0.2.15
         Icon name: computer-vm
           Chassis: vm
        Machine ID: 588ce19ba22340289d4e9f9ad3c5df63
           Boot ID: 5a4584a74a1f4b1596ac4b6d15c96e01
    Virtualization: oracle
  Operating System: Fedora Linux 35 (Workstation Edition)
       CPE OS Name: cpe:/o:fedoraproject:fedora:35
            Kernel: Linux 5.14.10-300.fc35.x86_64
      Architecture: x86-64
   Hardware Vendor: innotek GmbH
    Hardware Model: VirtualBox

他のいくつかのコマンドはhostnamectlの出力を絞り込みますが、誰も唯一のカーネル情報を返しません。

hostnamectl コマンドには、systemd-servicesパッケージが付属しています。

6. lsblkを使用したブロックデバイスの一覧表示

lsblk コマンドを使用して、システムのブロックデバイスに関する情報を取得します。

$ sudo lsblk -o NAME,KNAME,FSTYPE,MOUNTPOINT,SIZE
NAME   KNAME FSTYPE MOUNTPOINT   SIZE
sda    sda                      78,1G
├─sda1 sda1  ext2   /boot        1,5G
├─sda2 sda2                        1K
├─sda5 sda5  ext4   /            5,5G
├─sda6 sda6  ext4   /usr        12,5G
├─sda7 sda7  ext4   /home       54,7G
└─sda8 sda8  swap                  4G
sr0    sr0                      1024M

-o オプションを使用して、表示する列名のリストを提供する必要があります。 この例では、次を使用しました。

  • NAME –デバイス名
  • KNAME –内部デバイス名
  • FSTYPE –ファイルシステムのタイプ
  • MOUNPOINT –デバイスの取り付けポイント
  • SIZE –デバイスのサイズ

lsblk -h を発行すると、使用可能な列の完全なリストを取得できます。

さらに、 -b スイッチを使用して、単位をバイトに変更できます。

最後に、このコマンドを実行するためにroot権限は必要ありません。ただし、rootアクセスまたはsudoがないと、一部の列は使用できません。 FSTYPE

このコマンドは、util-linuxパッケージの一部として配布されています。

7. fdiskを使用したディスクパーティションの一覧表示

よく知られているfdiskコマンドを使用して、ディスクのパーティションを一覧表示してみましょう。

$ sudo fdisk -l

Disk /dev/sda: 83.9 GB, 83886080000 bytes
255 heads, 63 sectors/track, 10198 cylinders, total 163840000 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x000031b3

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     3106815     1552384   83  Linux
/dev/sda2         3108864   163839999    80365568    5  Extended
/dev/sda5         3110912    14583807     5736448   83  Linux
/dev/sda6        14585856    40724479    13069312   83  Linux
/dev/sda7        40726528   155449343    57361408   83  Linux
/dev/sda8       155451392   163839999     4194304   82  Linux swap / Solaris

パーティションのサイズは512バイトのブロックで示されます。 残念ながら、リストに表示されているユニットを変更することはできません。

7.1. パーティションのサイズをGB単位で取得する

fdisk に引数としてその名前を渡して、パーティションの詳細を表示しましょう。

$ sudo fdisk -l /dev/sda7

Disk /dev/sda7: 58.7 GB, 58738081792 bytes
255 heads, 63 sectors/track, 7141 cylinders, total 114722816 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sda7 doesn't contain a valid partition table

このようにして、パーティションサイズをGB単位で読み取ることができます。

7.2. セキュリティ上の注意と可用性

パーティションリストの提供は、fdiskの機能のごく一部にすぎないことに注意してください。

主に、パーティションを作成、削除、および変更するためのインタラクティブなツールです。

したがって、誤って sudo fdisk / dev / sda -l なし)を呼び出した場合、fdiskのすべてのコマンドを使用できるシェルに入ります。 。

次に、パーティションテーブルを変更したくない場合は、qと入力して終了する必要があります。

このコマンドは、util-linuxパッケージに含まれています。

8. 大きなパーティションに対処するために別れました

パーティションを操作するさらに別のコマンドは別れた。 それでは、パーティションの通常のリストを表示しましょう。

$ sudo parted -l
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sda: 83,9GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system     Flags
 1      1049kB  1591MB  1590MB  primary   ext2            boot
 2      1592MB  83,9GB  82,3GB  extended
 5      1593MB  7467MB  5874MB  logical   ext4
 6      7468MB  20,9GB  13,4GB  logical   ext4
 7      20,9GB  79,6GB  58,7GB  logical   ext4
 8      79,6GB  83,9GB  4295MB  logical   linux-swap(v1)

パーティションはデバイス名ではなく番号で識別されていることに注意してください。 さらに、サイズは適切な単位できれいにフォーマットされています。

parted コマンドは、fdiskに似たインタラクティブなツールです。

ただし、その注目すべき機能は、2TBを超えるパーティションを処理できることです。

このユーティリティは、同じ名前のパッケージpartedからインストールする必要があります。

9. 結論

この記事では、Linuxオペレーティングシステムに関する情報を提供する方法を紹介しました。 コンパイルされたカーネルバージョンを取得することから始めました。

次に、LSBの概念を適用するか、 systemd データを使用して、Linuxディストリビューションの詳細を確認する方法を学びました。 また、ホスト名管理ツールを使用して同様の情報を取得しました。

最後に、ディスクのパーティションシステムを照会するためのさまざまなツールを調べました。