パーティションとは ディスクに作られた論理的な仕切りのこと。OSはディスク単位、およびパーティション単位でディスクを認識する。まず気をつけたいのがパーティション=ファイルシステムではないということ。パーティションは、文字通り物理的なディスク上に作られた論理的な仕切り。そして、ファイルシステムはパーティションごとに作られ、OSに認識される。さらに、ファイルシステムっていうのは、データの置き場所だけではなく、そこからデータを取り出すソフトの部分も指すということは肝に銘じておきたい。
パーティションテーブル(MBRとGPT) mbr,gptのはなし。
ディスクの先頭にかかれたセクター(512bit)は特別な領域である。ここにはディスク上のパーティションの構成情報を格納しているパーティションテーブルが存在する。パーティションテーブルには様々なフォーマットが存在するが、現代、最も使われているのはMBRとGPTである。だが、MBRには2つの大きな制限がある。作成可能なパーティションの最大容量の制限と、ブートモードの制限である。
パーティションの最大容量の制限は、パーティションのセクタ管理に使われるbit数が原因である。MBRはセクタ管理に32bitを使っている。1セクタ=512バイトであるため、2^(9+32) = 2048.0Gbyteということになる。一方、GPTは2^64byteまでパーティションを作ることが可能である。
また、ブートモードの違いに関しては、近年のUEFIはMBRに対応していないため、MBR形式のディスクにインストールされたOSはUEFIのマザーボードではブートが不可能となる。
fdiskを使ってハードディスクにパーティションを作る(GPTを作る場合はgdiskを使う) Linux上でMBRにフォーマットされたパーティションをファイルシステムの一部に組み込むまでの流れを説明する。なお、例ではfdiskを使っているが、GPTでフォーマットされたパーティションを利用する場合はgdiskコマンドを利用すること。
デバイス一覧表示 fdisk -l 特定デバイスの詳細表示 fdisk -l /dev/sda 特定デバイスのパーティション作成 fdisk /dev/sda パーティション作成後にカーネルにパーティションテーブルを認識させる リブートするか、
sudo partprobe /dev/sdc これをしないと、次のファイルシステムを作れない。
ファイルシステム作成 パーティションを作ってもファイルシステムを作らないとOSはディスクにファイルを保存できない。 よって、ファイルシステムを作る。
sudo mkfs.ext4 /dev/sdc1 これは結構大事なポイントです。 ちなみに、ここでext4ではなく、xfsを作りたい場合は次のようにします。
sudo mkfs.xfs /dev/sdc1 って感じですね。
ちなみにこのmkfsで作れるのは、linuxにデフォルトでインストールされているファイルシステムのみです。 例えば、vfatとか、minixとか、ext4とかですね。分散ファイルシステムであるlustreとか、 広域分散ファイルシステムのchfsとか (つくばの建部先生が作ったやつですね) をインストールしたい場合は、まったく別のアプローチをとる必要があることを承知してください。よろしくお願いします。
ちなみにちなみに、上のでxfsを作ったときの出力結果をこちらに置いておきます。
meta-data=/dev/sdb2 isize=512 agcount=4, agsize=54985734 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=0 = reflink=1 data = bsize=4096 blocks=219942934, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1 log =internal log bsize=4096 blocks=107394, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 osのファイルシステムへのマウント sudo mount /dev/sdc1 /mnt/disk1 とかでマウントされる。
...