ディスクのRAWイメージの中に、パーティションを作成したい。どうするか。
必要なサイズのRAWイメージを作成。説明はこちらの記事あたりを参照。
ループバックデバイスとして読み込む。
# losetup --find --show raw_disk.img /dev/loop0
おわり
この段階でfdiskなどを使って、パーティションを切ることができる。
# fdisk -l /dev/loop0 Disk /dev/loop0: 953.69 MiB, 1000000000 bytes, 1953125 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
おわり
試しにこんな感じで作ってみた。
# fdisk -l /dev/loop0 Disk /dev/loop0: 953.69 MiB, 1000000000 bytes, 1953125 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 Disklabel type: dos Disk identifier: 0x35e97b7c Device Boot Start End Sectors Size Id Type /dev/loop0p1 * 2048 206847 204800 100M 83 Linux /dev/loop0p2 206848 1953124 1746277 852.7M 83 Linux
おわり
/dev/loop0p1とか/dev/loop0p2とかできているので、確認してみる。
# ls /dev/loop0* /dev/loop0
でも、ない。
一旦、losetupで/dev/loop0を消して、再度読み込んで見る。
# losetup -d /dev/loop0 # losetup --find --show raw_disk.img /dev/loop0 # ls /dev/loop0* /dev/loop0 # ls /dev/mapper/loop0* ls: cannot access '/dev/mapper/loop0*': No such file or directory
やっぱりない。
今回作成したパーティションは、そのままではOSに認識されない。読み込ませるには、losetupのあとに、kpartxを使う。
ちなみに、Gentooでは、kpartxはsys-fs/multipath-toolsパッケージに含まれているのでemergeしておく。
# kpartx -a /dev/loop0 # ls /dev/loop0* /dev/loop0 # ls /dev/mapper/loop0* /dev/mapper/loop0p1@ /dev/mapper/loop0p2@ # ls -l /dev/mapper/loop0* lrwxrwxrwx. 1 root root 7 Jan 30 16:48 /dev/mapper/loop0p1 -> ../dm-3 lrwxrwxrwx. 1 root root 7 Jan 30 16:48 /dev/mapper/loop0p2 -> ../dm-4
このような形で、各パーティションは/dev/mapper/の下にできている。
各パーティションをフォーマット
# mkfs.ext4 /dev/mapper/loop0p1 mke2fs 1.45.6 (20-Mar-2020) Discarding device blocks: done Creating filesystem with 102400 1k blocks and 25688 inodes Filesystem UUID: d7939034-11c6-42a9-b0e6-2319a3f3a512 Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done # mkfs.ext4 /dev/mapper/loop0p2 mke2fs 1.45.6 (20-Mar-2020) Discarding device blocks: done Creating filesystem with 218284 4k blocks and 54656 inodes Filesystem UUID: 4f58e21b-10b1-4a67-b376-17e1dc159aab Superblock backups stored on blocks: 32768, 98304, 163840 Allocating group tables: done Writing inode tables: done Creating journal (4096 blocks): done Writing superblocks and filesystem accounting information: done
あとは、お好きなように。
使い終わったら、取り外す。
# kpartx -d /dev/loop0 # losetup -d /dev/loop0
おわり
0 件のコメント:
コメントを投稿