※読んでいくのが面倒な場合は、記事中盤あたりに、パーティション開始位置の自動補完方法があるのでそこを参照.
以下は、partedコマンドの使い方とアラインメントエラーを表示させないパーティション作成方法.
実験用HDDパーティションの初期化
実験用HDDパーティションの初期化
# dd if=/dev/zero of=/dev/sdbpartedコマンドからHDDを確認
# parted /dev/sdb
(parted) print
エラー: /dev/sdb: ディスクラベルが認識できません。
ディスクラベルをgptに設定
(parted) mklabel
新しいディスクラベル? gpt
アラインチェック
(parted) align-check
アライメントタイプ(min/opt) [最適(optimal)]/optimal/最小(minimal)/minimal? opt
パーティション番号? 1
エラー: パーティションがありません。
パーティションはまだ作成していないので、上記表示は正常だ.
以下は、パーティション開始位置を間違えたまま、パーティションを作成したもの.
以下は、パーティション開始位置を間違えたまま、パーティションを作成したもの.
(parted) mkpartパーティションの名前? []? Dataファイルシステムの種類? [ext2]? ntfs
開始? 4096kB終了? 2000GB警告: 操作の結果できるパーティションはアライメントが正しくないためにパフォーマンスがでません。
無視(I)/Ignore/取消(C)/Cancel? Iこの状態でアラインチェックを行なうと以下のように表示される.
うまく区切れていないようだ.align-checkはあくまでチェックなのか.(parted) align-checkアライメントタイプ(min/opt) [最適(optimal)]/optimal/最小(minimal)/minimal? optパーティション番号? 1
1 not aligned
最適とか最小とか表示されると、自動で最適化をかけてくれるものかと勘違いしちゃうじゃないか.
partedコマンドで、パーティション開始位置の設定がわからない場合は以下のように入力すると、開始位置を自動的に補完してくれる.
開始? 0%ついでにHDDを1つのパーティションで使い切りたい場合は、「終了?」項目に以下のように入力するとこちらも最終位置を自動的に補完してくれる.
終了? 100%結果は以下の通り.
(parted) printモデル: ATA ST2000DM001-9YN1 (scsi)ディスク /dev/sdb: 2000GBセクタサイズ (論理/物理): 512B/4096Bパーティションテーブル: gpt番号 開始 終了 サイズ ファイルシステム 名前 フラグ1 1049kB 2000GB 2000GB Data
おお、開始位置が1MiBに補完されてる.アラインチェックも問題なさそう.
(parted) align-checkアライメントタイプ(min/opt) [最適(optimal)]/optimal/最小(minimal)/minimal? optパーティション番号? 1
1 aligned
ついでに、ntfsフォーマットしようと思ったけど、以下のようなエラーが表示されたので、partedコマンドでは行なわず、mkfs.ntfsにタクす事にした。
(parted) mkfs警告: ファイルシステムに対して parted による操作(mkfs)を行おうとしています。parted のファイルシステム操作コードは、e2fsprogs のようなファイルシステム専用のものほど堅固に作られていません。可能なかぎり parted をパーティションテーブルの操作だけに用いることをお勧めします。ほとんどのファイルシステムに対するほとんどの操作は今後のリリースで削除される予定です。警告: いま存在しているファイルシステムは破壊され、このパーティションの全データが失われます。続行しますか?はい(Y)/Yes/いいえ(N)/No? N
partedでパーティショニングをおこなったHDDをgdiskで確認したら以下のようになった。
Command (? for help): pDisk /dev/sdb: 3907029168 sectors, 1.8 TiBLogical sector size: 512 bytesDisk identifier (GUID): XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXXPartition table holds up to 128 entriesFirst usable sector is 34, last usable sector is 3907029134Partitions will be aligned on 2048-sector boundariesTotal free space is 2014 sectors (1007.0 KiB)Number Start (sector) End (sector) Size Code Name1 2048 3907029134 1.8 TiB 8300 Data
partedでは以下のとおり
(parted) print
モデル: ATA ST2000DM001-9YN1 (scsi)
ディスク /dev/sdb: 2000GB
セクタサイズ (論理/物理): 512B/4096B
パーティションテーブル: gpt
番号 開始 終了 サイズ ファイルシステム 名前 フラグ
1 1049kB 2000GB 2000GB ntfs Data
表示される値が違うなと思ったら、kbyteとsectorの違いだった.計算してしみると、結果は同じだ.
gdisk 2048 = 1049kB / 512Bparted 1049kB = 2048 / 512B
ちなみに、上記エラーがFedora14の「ディスクユーティリティ」に表示された時、手動で適当にパーティション開始位置を設定した値から 3072 bytes分ずらしてみたが、partedコマンドでは設定時にアラインメント警告が表示されてしまった.
The partition is misaligned by 3072 bytes.
(parted) mkpartしかし、警告を無視して実行して、ディスクユーティリティで確認したところアラインメント警告は消えていた.うーん、時間のある時にベンチマークとってみよう.
パーティションの名前? []?
ファイルシステムの種類? [ext2]? ntfs
開始? 24.6kB (sector 48 /gdisk)
終了? 100%
警告: 操作の結果できるパーティションはアライメントが正しくないためにパフォーマンスがでません。
無視(I)/Ignore/取消(C)/Cancel? i
0 件のコメント:
コメントを投稿