GNU/Linux >> Linux の 問題 >  >> Linux

15 ディスク パーティションを管理するための Linux sfdisk コマンドの例

システム管理者にとって、Linux サーバーのハードディスク パーティションの管理は重要なタスクです。

このチュートリアルでは、sfdisk コマンドライン ユーティリティを使用してハードディスク パーティションを管理する方法に焦点を当てます。

sfdisk は fdisk に似ていますが、sfdisk で非常に簡単に実行できるパーティション操作アクティビティはほとんどありません。たとえば、sfdisk を使用して、非対話的な方法で新しいパーティションを作成できます。

このチュートリアルでは、次の sfdisk アクティビティについて説明します。

<オール>
  • 既存のディスク パーティションを表示する
  • 表示単位の変更 (MB 単位の表示サイズ)
  • 新しいディスク パーティションを作成する (インタラクティブな方法)
  • パーティション テーブルの整合性を確認する
  • パーティションの合計サイズを表示
  • ディスク パーティションの詳細をテキスト ファイルにダンプ
  • テキスト ファイルから新しいパーティションを作成する (非インタラクティブな方法)
  • 拡張パーティションの詳細を表示
  • デバッグ用のディスク ジオメトリを表示する
  • すべてのディスク パーティション タイプを表示
  • 1 つのディスク パーティションのみを操作する
  • 検証のためのドライラン モード
  • 特定のパーティションを起動可能としてマーク
  • パーティション タイプの変更
  • シェル スクリプトから新しいパーティションを作成する (非インタラクティブな方法)
  • 1.既存のディスク パーティションを表示

    -l オプションを使用すると、すべてのディスク パーティションを表示できます。 -l はリストを表します。

    デフォルトでは、システム上のすべてのディスクのパーティションが表示されます。

    # sfdisk -l
    
    Disk /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sda1   *      0+   1044-   1045-   8387584   83  Linux
    /dev/sda2          0       -       0          0    0  Empty
    /dev/sda3          0       -       0          0    0  Empty
    /dev/sda4          0       -       0          0    0  Empty
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    

    上記では:

    • sda デバイスと sdf デバイスの両方のパーティションが表示されます。
    • sda には 1 つのパーティションしかありません。つまり、sda1。ただし、-l オプションを使用すると、常に 4 つのプライマリ パーティション情報がすべて表示されます。この例では、sda には 1 つのパーティション (つまり sda1) しかないため、残りの 3 つのパーティション (sda2、sda3、sda4) は最後の列に「空」と表示されます。
    • デバイス sdf にはパーティションがありません。つまり、このデバイスにはまだ何も作成されていません。したがって、このデバイスについては何も表示されません。

    以下に示すようにデバイス名を渡すことで、特定のデバイスのディスク パーティションを表示することもできます。

    # sfdisk -l /dev/sdf
    

    -l の代わりに、以下に示すように –list を使用することもできます。

    sfdisk --list
    sfdisk --list /dev/sdf
    

    ハードディスクの管理に慣れていない場合は、通常の信頼できる fdisk コマンドの使用方法も理解しておく必要があります:ハードディスク パーティションを管理するための 7 つの Linux fdisk コマンドの例

    2.表示単位の変更 (MB 単位の表示サイズ)

    デフォルトでは、sfdisk はサイズをブロック単位で表示します。上記の sfdisk -l の出力で、「#blocks」という列を見てください。

    ただし、サイズを MB で表示する場合は、以下に示すように -u オプションを使用します。 -u はユニットを表します。ユニットの種類を指定する必要があります。この例では、指定している単位の種類は M (MB) です

    -uM オプションは、以下に示すように、上記の出力の「#cyls」列を「MiB」(MB 単位のサイズ) に置き換えます。

    # sfdisk -l -uM
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Units: 1MiB = 1024*1024 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start   End    MiB    #blocks   Id  System
    /dev/sdf1         0+  8032-  8033-   8225279+  83  Linux
    /dev/sdf2      8032+  8189-   157-    160650   83  Linux
    /dev/sdf3         0      -      0          0    0  Empty
    /dev/sdf4         0      -      0          0    0  Empty
    

    以下は、指定できるさまざまな単位タイプです:

    • MB の M
    • シリンダー数の C (これがデフォルトです)
    • セクター数の S
    • ブロック数の B (これは #cylinders とともにデフォルト出力にも表示されます)
    # sfdisk -l -uM
    # sfdisk -l -uC 
    # sfdisk -l -uS 
    # sfdisk -l -uB 
    

    3.新しいディスク パーティションを作成する (インタラクティブな方法)

    次の例では、空のハードディスク (sdf) を取得し、sfdisk を使用してその上にパーティションを作成します。

    # sfdisk /dev/sdf
    

    以下は、簡単に理解できるように、上記のコマンドの出力を複数のセクションに分割したものです。

    まず、sdf をチェックして、現在マウントされていないこと、または他の誰かによって使用されていないことを確認します。

    Checking that no-one is using this disk right now ...
    OK
    

    次に、このデバイスの現在のパーティション情報が表示されます。ここからわかるように、現在、sdf デバイスにはパーティションがありません。

    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    sfdisk:  /dev/sdf: unrecognized partition table type
    
    Old situation:
    sfdisk: No partitions found
    

    次に、4 つのプライマリ パーティションすべてのパーティション サイズを入力するよう求められます。パーティションを 1 つだけ作成したい場合でも、すべてのプライマリ パーティションに対して 4 つの異なる時間が表示されます。

    以下で:

    • この例では、2 つのパーティションを作成します。
    • つまり、「/dev/sdf1 :」のプロンプトが表示されたら、最初のパーティションを作成しています。ここでは「0 1024」と入力しました。 0 はシリンダーの開始、1024 は最初のパーティションのシリンダーの終了です。
    • 次に、「/dev/sdf2 :」のプロンプトが表示されたら、2 番目のパーティションを作成します。ここで、Enter キーを押しただけです。これにより、残りのスペースがすべて取得され、2 番目のパーティションが作成されます。
    • 次に、sdf3 と sdf4 に対して Enter キーを押しました。 SDF にはスペースが残っていないため、以下に示すように空になります。
    • また、デフォルトでは「Linux」タイプとしてパーティションが作成されることに注意してください。別のタイプに変更する場合は、タイプを指定する必要があります。
    Input in the following format; absent fields get a default value.
    <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>
    Usually you only need to specify <start> and <size> (and perhaps <type>).
    
    /dev/sdf1 :0 1024
    /dev/sdf1          0+   1023    1024-   8225279+  83  Linux
    /dev/sdf2 :
    /dev/sdf2       1024    1043      20     160650   83  Linux
    /dev/sdf3 :
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4 :
    /dev/sdf4          0       -       0          0    0  Empty
    

    これで、sfdisk は作成するパーティションを表示します。以下に示すように、2 つのパーティション (sdf1 と sdf2) が作成されます。

    New situation:
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+   1023    1024-   8225279+  83  Linux
    /dev/sdf2       1024    1043      20     160650   83  Linux
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    Warning: no primary partition is marked bootable (active)
    This does not matter for LILO, but the DOS MBR will not boot this disk.
    

    最後に、確認を求められます。間違えて上記のパーティションを作成したくない場合は、「q」と入力して終了します。ここで、y と入力して、これら 2 つの新しいパーティションを作成しました。

    Do you want to write this to disk? [ynq] y
    Successfully wrote the new partition table
    
    Re-reading the partition table ...
    
    If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
    to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
    (See fdisk(8).)
    

    最後に、以下に示すように、sfdisk -l を使用してパーティションが正常に作成されたことを確認しました。

    # sfdisk -l /dev/sdf
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+   1023    1024-   8225279+  83  Linux
    /dev/sdf2       1024    1043      20     160650   83  Linux
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    

    関連するメモとして、大きなサイズのパーティションを作成するには、これを参照してください:Parted GPT を使用して Linux で>2TB サイズのパーティションを作成する方法

    4.パーティション テーブルの一貫性を確認

    -V (大文字の V) オプションを使用して、パーティション テーブルの整合性チェックを実行します。 V はベリファイの略です。

    次の出力に示すように、すべてが良好な場合は「OK」と表示されます。これにより、警告メッセージも表示されます。

    # sfdisk -V
    Warning: partition 1 does not end at a cylinder boundary
    /dev/sda: OK
    Warning: no primary partition is marked bootable (active)
    This does not matter for LILO, but the DOS MBR will not boot this disk.
    /dev/sdf: OK
    

    以下に示すように、特定のデバイスのみを検証することもできます。

    # sfdisk -V /dev/sdf
    

    また、以下に示すように V と l オプションを組み合わせることができます。

    sfdisk -lV
    

    シェル スクリプト内から検証を実行している場合は、V とともに -q オプションを使用できます。q は quiet を表します。この場合、出力は表示されません。ただし、以下に示すように、コマンドのステータスをチェックして、一貫性チェックが成功したか失敗したかを確認できます。

    # sfdisk -Vq 
    
    # echo $?
    0
    

    ディスクの内容自体の一貫性を確認したい場合は、次の方法を使用してください:ファイルシステムを確認して修復する 10 の Linux Fsck コマンドの例

    5.パーティションの合計サイズを表示

    すべてのパーティションを含むディスクの合計サイズを表示するには、-s オプションを使用します。 -s はサイズを表します。

    これにより、パーティションの合計サイズがブロック数で表示されます。

    デフォルトでは、システム上のすべてのハードディスクの合計パーティション サイズが表示されます。また、以下に示すように、システム上のすべてのディスクの合計サイズが表示されます。

    # sfdisk -s
    /dev/sda:   8388608
    /dev/sdf:   8388608
    total: 16777216 blocks
    

    以下に示すように、個々のハードディスク (または) パーティションを指定することもできます。

    # sfdisk -s /dev/sdf
    8388608
    # sfdisk -s /dev/sdf1
    1654694
    

    6.ディスク パーティションの詳細をテキスト ファイルにダンプ

    sfdisk には、すべてのディスク パーティション情報をテキスト ファイルにダンプするオプションも用意されています。

    これには -d オプションを使用します。 -d はダンプを表します。

    デフォルトでは、-d は出力を画面にダンプします。これには、システム上のすべてのデバイスのパーティション情報が含まれます。

    # sfdisk -d
    

    以下に示すように、特定のデバイスのパーティション情報をダンプすることもできます。

    # sfdisk -d /dev/sda
    

    テキスト ファイルにダンプするには、次の手順を実行します。これにより、sda のパーティション情報が sda.out テキスト ファイルにダンプされます。

    # sfdisk -d /dev/sda > sda.out
    
    # cat sda.out
    # partition table of /dev/sda
    unit: sectors
    
    /dev/sda1 : start=     2048, size= 16775168, Id=83, bootable
    /dev/sda2 : start=        0, size=        0, Id= 0
    /dev/sda3 : start=        0, size=        0, Id= 0
    /dev/sda4 : start=        0, size=        0, Id= 0
    

    7.テキスト ファイルから新しいパーティションを作成する (非対話型の方法)

    -d オプションの優れた点は、特定のデバイスのパーティション ダンプを取得し、それを使用して別のデバイスに同様のパーティション ダンプを作成できることです。

    たとえば、sda デバイスの現在のパーティションを sdf デバイスに複製する場合は、以下に示すように -d オプションを使用できます。

    最初に、前の例で示した sda デバイスのダンプを sda.out ファイルに取得します。

    上記の例では、sda デバイスに 1 つのパーティションがあることがわかります。

    現在、sdf デバイスには、現在 2 つのパーティションがあります。

    # sfdisk -l /dev/sdf
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+    499     500-   4016249+  83  Linux
    /dev/sdf2        500    1043     544    4369680   83  Linux
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    

    次に、前の例の sda.out ファイルを使用して、以下に示すように sdf デバイスに同様のパーティションを作成します。

    # sfdisk /dev/sdf < sda.out
    

    上記のコマンドは、sda.out ファイルからのパーティション情報を使用し、それを使用して、以下に示すように、ユーザーからの入力を求めることなく、sdf に新しいパーティションを自動的に作成します。

    Checking that no-one is using this disk right now ...
    OK
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Old situation:
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+    499     500-   4016249+  83  Linux
    /dev/sdf2        500    1043     544    4369680   83  Linux
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    New situation:
    Units: sectors of 512 bytes, counting from 0
    
       Device Boot    Start       End   #sectors  Id  System
    /dev/sdf1   *      2048  16777215   16775168  83  Linux
    /dev/sdf2             0         -          0   0  Empty
    /dev/sdf3             0         -          0   0  Empty
    /dev/sdf4             0         -          0   0  Empty
    Warning: partition 1 does not end at a cylinder boundary
    Successfully wrote the new partition table
    
    Re-reading the partition table ...
    
    If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
    to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
    (See fdisk(8).)
    

    次の出力からわかるように、sdf には 1 つの新しいパーティションがあり、これは sda に似ています。

    # sfdisk -l
    
    Disk /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sda1   *      0+   1044-   1045-   8387584   83  Linux
    /dev/sda2          0       -       0          0    0  Empty
    /dev/sda3          0       -       0          0    0  Empty
    /dev/sda4          0       -       0          0    0  Empty
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1   *      0+   1044-   1045-   8387584   83  Linux
    /dev/sdf2          0       -       0          0    0  Empty
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    

    8.拡張パーティションの詳細を表示

    x は拡張パーティションを表します。 x と l を組み合わせると、以下に示すように非プライマリ拡張パーティションも表示されます。

    # sfdisk -lx /dev/sdf
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+    205     206-   1654694+  83  Linux
    /dev/sdf2        206     411     206    1654695   83  Linux
    /dev/sdf3        412     514     103     827347+  82  Linux swap / Solaris
    /dev/sdf4        515    1043     529    4249192+   5  Extended
    
    /dev/sdf5        515+    617     103-    827347   83  Linux
        -            618    1043     426    3421845    5  Extended
        -            515     514       0          0    0  Empty
        -            515     514       0          0    0  Empty
    
    /dev/sdf6        618+   1043     426-   3421844+  83  Linux
        -            618     617       0          0    0  Empty
        -            618     617       0          0    0  Empty
        -            618     617       0          0    0  Empty
    

    新しいパーティションを作成するときに -x オプションを使用することもできます。その場合、sfdisk はそれらの入力記述子を要求 (または予期) します。

    9.デバッグ用のディスク ジオメトリを表示

    パーティション テーブルに関連する問題をデバッグする場合、検証する必要があることの 1 つは、パーティション テーブル情報がカーネルによって認識されるデバイスと同じであるかどうかです。

    パーティション テーブルを直接読み取って、デバイスのジオメトリに関するカーネルの考えがデバイスの実際のジオメトリと同じであることを確認することをお勧めします。

    -G オプション (大文字の G) は、以下に示すようにパーティション テーブルを直接読み取ることにより、デバイスの実際のジオメトリを表示します。

    # sfdisk -G
    /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track
    /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    

    -g オプション (小文字の g) は、デバイスのジオメトリに関するカーネルの考えを表示します。

    # sfdisk -g
    /dev/sda: 1044 cylinders, 255 heads, 63 sectors/track
    /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    

    この例では、両方の出力が適切に一致しています。これが一致しない場合は、何らかの問題があります。

    10.すべてのディスク パーティション タイプを表示

    sfdisk を使用して新しいパーティションを作成する際に使用できる、サポートされているすべてのパーティション タイプを表示するには、-T オプションを使用します。 T はタイプ (つまり、パーティションタイプ) を表します。

    これにより、パーティション タイプ ID とわかりやすい名前が表示されます。パーティションの作成中に、パーティション タイプ ID を指定します。たとえば、スワップ パーティションのタイプとして 82 を使用します。

    # sfdisk -T
    Id  Name
    
     0  Empty
     1  FAT12
     2  XENIX root
     3  XENIX usr
     4  FAT16 <32M
     5  Extended
     6  FAT16
    ..
    ..
    82  Linux swap / Solaris
    83  Linux
    84  OS/2 hidden C: drive
    85  Linux extended
    86  NTFS volume set
    87  NTFS volume set
    88  Linux plaintext
    8e  Linux LVM
    ..
    ..
    

    スワップ領域について:dd、mkswap、および swapon を使用してスワップ領域を追加する 2 つの方法

    11.単一のディスク パーティションのみを操作

    -N オプションを使用して、特定のディスク パーティションを操作できます。 -N は番号 (つまり、パーティション番号) を表します。

    これを使用して、既に他のパーティションがある既存のディスクに新しいパーティションを作成できます。

    次の例では、sdf デバイスに既に 1 つのパーティションがあります。しかし、2 つ目のパーティションを作成したいと考えています。

    # sfdisk /dev/sdf -N2
    Checking that no-one is using this disk right now ...
    OK
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Old situation:
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+    511     512-   4112639+  83  Linux
    /dev/sdf2          0       -       0          0    0  Empty
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    Input in the following format; absent fields get a default value.
    <start> <size> <type [E,S,L,X,hex]> <bootable [-,*]> <c,h,s> <c,h,s>
    Usually you only need to specify <start> and <size> (and perhaps <type>).
    /dev/sdf2 :512 1024
    Warning: given size (1024) exceeds max allowable size (532)
    /dev/sdf2 :512 532
    /dev/sdf2        512    1043     532    4273290    0  Empty
    New situation:
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+    511     512-   4112639+  83  Linux
    /dev/sdf2        512    1043     532    4273290    0  Empty
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    Warning: no primary partition is marked bootable (active)
    This does not matter for LILO, but the DOS MBR will not boot this disk.
    Do you want to write this to disk? [ynq] y
    Successfully wrote the new partition table
    
    Re-reading the partition table ...
    
    If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
    to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
    (See fdisk(8).)
    

    上記では:

    • -N2 オプションを使用して、2 番目のパーティションのみを操作しました。
    • これは、上記のように、sfdisk が sdf2 のパーティション情報のみを要求することを意味します。
    • 既存の sdf1 パーティションは変更されません。
    • また、sdf3 と sdf4 に関する情報は表示されません

    12.検証のためのドライラン モード

    実際に新しいパーティションを作成したり、パーティション テーブルの情報を変更したりする前に、使用しているコマンドの構文がすべて正しいかどうかを確認する必要があります。

    その場合は、-n オプションを使用するのが最善です。これにより、実際には何もせずにすべてのモーションを実行できます。

    -n オプションは予行演習オプションであり、コマンドが行うべきことは何でも実行しますが、何も保存したり変更したりしません。

    たとえば、パーティション タイプを変更する場合、-n オプションを使用できます。これはコマンドを実行しますが、以下に示すように実際には何も変更しません。

    # sfdisk -n --change-id /dev/sdf 1 82
    sfdisk: -n flag was given: Nothing changed
    

    以下に示すように、新しいパーティションを作成するときにもこれを使用できます。これにより、コマンドが実行され、出力にすべてが表示されますが、新しいパーティションは実際には作成されません。

    sfdisk -n /dev/sdf < sda.out
    

    13.特定のパーティションを起動可能としてマーク

    -A オプションを使用して、特定のパーティションをブート パーティションとしてマークします。 -A はアクティブ化の略です。

    次の例では、2 番目のパーティション (sdf2) をアクティブ パーティション (つまり、ブートとしてマーク) としてアクティブにしています。このデバイス (sdf) の他のパーティションが既に起動用にマークされている場合は、ここでマークが解除されることに注意してください。

    # sfdisk -A2 /dev/sdf
    Done
    

    次の出力からわかるように、sdf2 のみがアクティブになります。 2 列目の「*」(つまり、ブート) は、これがブート パーティションとしてマークされていることを示します。

    # sfdisk -l /dev/sdf
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+    511     512-   4112639+  83  Linux
    /dev/sdf2   *    512    1043     532    4273290    0  Empty
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    

    14.パーティションの種類を変更

    既存のパーティションのパーティション タイプを変更できます。

    最初に、–print-id オプションを使用して、特定のパーティションのパーティション タイプを表示します。次のコマンドは、sdf1 のパーティション タイプを表示します。ここで、出力の 83 は、sdf1 が Linux パーティション タイプであることを示しています。

    # sfdisk --print-id  /dev/sdf 1
    83
    

    次の出力 0 は、sdf2 パーティションが現在空であることを示します。

    # sfdisk --print-id  /dev/sdf 2
    0
    

    ここで、以下に示すように –change-id オプションを使用して、パーティション デバイスのパーティション タイプを変更します。

    この例では、sdf2 パーティションのパーティション タイプを 83 (Linux パーティション) に変更しています

    # sfdisk --change-id /dev/sdf 2 83
    Done
    

    次の出力からわかるように、sdf2 は Linux パーティション タイプに設定されています (つまり、最後の列「システム」を見てください)。

    # sfdisk -l /dev/sdf
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+    511     512-   4112639+  83  Linux
    /dev/sdf2   *    512    1043     532    4273290   83  Linux
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    

    15.シェル スクリプトから新しいパーティションを作成する (非インタラクティブな方法)

    sfdisk の大きな利点の 1 つは、sfdisk からの操作なしで、コマンドラインからオンザフライでパーティションを作成できることです。

    これは、シェル スクリプトからパーティションの作成を自動化したい場合に非常に役立ちます。

    現在、次の出力からわかるように、sdf デバイスは現在空です。これにはパーティションがありません。

    # sfdisk -l /dev/sdf
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0       -       0          0    0  Empty
    /dev/sdf2          0       -       0          0    0  Empty
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    

    次に、次のコマンドを実行します。これにより、以下に示す値を使用して 3 つのパーティション (sdf1、sdf2、sdf3) が自動的に作成されます。

    # sfdisk /dev/sdf <<EOF
    0,512
    ,512
    ;
    ;
    EOF
    

    上記では:

    • 上記の入力には、4 つのプライマリ パーティションすべてに対して 4 行が必要です。
    • 最初の行は、最初のパーティション (つまり、sdf1) を作成するために、最初のシリンダーから 512 まで開始する必要があることを示しています
    • 2 行目は、使用可能な最後のシリンダーから最初のシリンダーとして開始し、そこから +512 シリンダーを使用して 2 番目のパーティション (つまり、sdf2) を作成する必要があることを示しています
    • 3 行目にセミコロンがあります。これは、デフォルト値を使用し、3 番目のパーティションについてユーザーに何も要求しないことを示します。この場合、ディスク上の残りのすべてのシリンダーを使用して、3 番目のパーティション (つまり、sdf3) を作成します
    • 4 行目にはセミコロンがあります。これは、デフォルト値を使用し、4 番目のパーティションについてユーザーに何も要求しないことを示しています。この場合、スペースが残っていないため、4 番目のパーティション (つまり、sdf4) には何も作成されません

    以下は、上記の sfdisk コマンドの出力です。これは、ユーザーからの入力を求めるものではないことに注意してください。

    Checking that no-one is using this disk right now ...
    OK
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Old situation:
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0       -       0          0    0  Empty
    /dev/sdf2          0       -       0          0    0  Empty
    /dev/sdf3          0       -       0          0    0  Empty
    /dev/sdf4          0       -       0          0    0  Empty
    New situation:
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+    511     512-   4112639+  83  Linux
    /dev/sdf2        512    1023     512    4112640   83  Linux
    /dev/sdf3       1024    1043      20     160650   83  Linux
    /dev/sdf4          0       -       0          0    0  Empty
    Warning: no primary partition is marked bootable (active)
    This does not matter for LILO, but the DOS MBR will not boot this disk.
    Successfully wrote the new partition table
    
    Re-reading the partition table ...
    
    If you created or changed a DOS partition, /dev/foo7, say, then use dd(1)
    to zero the first 512 bytes:  dd if=/dev/zero of=/dev/foo7 bs=512 count=1
    (See fdisk(8).)
    

    指定された値を使用して、3 つのパーティションが自動的に作成されたことを確認します。

    # sfdisk -l /dev/sdf
    
    Disk /dev/sdf: 1044 cylinders, 255 heads, 63 sectors/track
    Units: cylinders of 8225280 bytes, blocks of 1024 bytes, counting from 0
    
       Device Boot Start     End   #cyls    #blocks   Id  System
    /dev/sdf1          0+    511     512-   4112639+  83  Linux
    /dev/sdf2        512    1023     512    4112640   83  Linux
    /dev/sdf3       1024    1043      20     160650   83  Linux
    /dev/sdf4          0       -       0          0    0  Empty
    

    Linux
    1. LinuxでのFdiskコマンド(パーティションの管理)

    2. Linux での sa コマンドの例

    3. w Linux でのコマンド例

    1. LinuxDDコマンド-すべてのオプションを使用した15の例

    2. Linux での rm コマンドの例

    3. Linux での ps コマンドの例

    1. Linux での ac コマンドの例

    2. Linux での df コマンドの例

    3. Linux での du コマンドの例