解決策

解決策

新しいパーティションを作成すると、パーティションが以前に存在していた場合は、フォーマットする前に自動的にマウントされる望ましくない副作用があるようです。

これは次のスクリプトでは問題になります。

parted -sm /dev/sdb mklabel gpt
parted -sm /dev/sdb mkpart primary ext4 1 1.8T
mkfs.ext4 -L drive /dev/sdb1

パーティションがすでにマウントされているため、mkfsは失敗します。

この動作はCentOS 7で観察された。ターゲットディスクが以前にフォーマットされマウントされた最後の起動以降の時間

/etc/fstabマウントポイントディレクトリのエントリをアンマウントまたは削除すると、この条件が引き続き発生します。マウントポイントが作成され、パーティションが自動的にマウントされます。

マウントポイントディレクトリを作成した人、partedがその情報をどこから取得するかはわかりません。

fstab Clear 呼び出しと Detach 呼び出しの間で再開すると、この問題は解決されます。 partedにはサイレントインストールのパラメータは記載されていません。

それでは、この動作は parted で正常なものですか?自動インストールを防ぐ安定した方法はありますか?

答え1

徹底したテストを経て、2018年3月基準で答えは方法がないということです。別れた防ぐシステム/etc/fstabでnoautoを使用して事前に明示的に構成されていない限り、再作成してからパーティションを自動的に再マウントします。

解決策

@ABが提案したように、次の別のツールはディスクドライブまたはgdisk代わりに使用できます別れた再作成する前に、パーティション情報を正しく消去してください。唯一の欠点は、これらのツールが対話型シェルを使用し、スクリプトのバッチ処理用に設計されていないことです。

インタラクティブモード

# gdisk /dev/sda
GPT fdisk (gdisk) version 0.8.6

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): Y

Command (? for help): n
Partition number (1-128, default 1):
First sector (34-3907029134, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):
Changed type of partition to 'Linux filesystem'

Command (? for help): w

Final checks complete. About to write GPT data.
THIS WILL OVERWRITE EXISTING PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.

パイプラインの自動化

これは非常にきれいでも移植可能でもありませんが、ユーザー入力を1行ずつ配管して同じ結果を得ることができます。インタラクティブモードと同様に、空行はgdiskが提供するデフォルト値を受け入れます。この場合、パーティション使用量を最大化し、Linuxシステムの正しいタイプを選択します。

echo -ne 'o\nY\nn\n\n\n\n\nw\nY\n' | gdisk /dev/sda

システムDモニタリング

走っている間gdiskdmesgのインストール活動を確認したところ、いくつかのデバイス情報要求のみが見つかりました。

kern  :info  : [Mar27 10:38]  sda: sda1
kern  :info  : [  +1.019077]  sda: sda1

したがって、このアプローチを使用すると、自動化スクリプトを安全に続行できます。MKFS部分。

関連情報