src
- mkimg, a utility for making disk images from raw partition contents
FreeBSD 11.
0-CURRENTのベースシステムに新しくmkimg(1)というコマンドが追加されました。これはディスクイメージを作成するためのコマンドで、 従来であればdd(1)、 gpart(8)、 mdconfig(8)、 newfs(8)などを使って作成していたディスクイメージをmkimg(1)コマンドのみで実現できるというものです。もともとJuniper Networksで使われていたコマンドですが、 今回FreeBSDの一般コマンドとしてマージされました。 UFSファイルシステムイメージを作成するコマンドとしてmakefs(8)がベースシステムには含まれています。典型的にはこのmakefs(8)とmkimg(1)を組み合わせて実行することでディスクイメージを作成します。
たとえば、
まず次のようにmakefs(8)コマンドでファイルシステムイメージを作ります。このコマンドで1GBのファイルシステムイメージファイルができあがります。対象のディレクトリにFreeBSDの成果物を展開しておけばブートして利用できるファイルシステムになります。ここでは動作のチェックだけしたいので簡単に1つのファイルが存在するディレクトリを用意してファイルシステムを作成しています。 makefs(8)で1GBのUFSイメージファイルを作成 # find dir ← ファイルシステムに展開するコンテンツ dir dir/
test ↓ 1GBのファイルシステムイメージを作成 # makefs -s 1g ufs_ image. disk dir Calculated size of `ufs_ image. disk': 1073741824 bytes, 3 inodes Extent size set to 8192 density reduced from 357913942 to 906582 ufs_ image. disk: 1024. 0MB (2097152 sectors) block size 8192, fragment size 1024 using 19 cylinder groups of 55. 31MB, 7080 blks, 64 inodes. super-block backups (for fsck -b #) at: 32, 113312, 226592, 339872, 453152, 566432, 679712, 792992, 906272, 1019552, 1132832, 1246112, 1359392, 1472672, 1585952, 1699232, 1812512, 1925792, 2039072, Populating `ufs_ image. disk' Image `ufs_ image. disk' complete # ls -lh ufs_ image. disk ↓ サイズを確認すると1GBになっている -rw-r--r-- 1 root wheel 1. 0G May 26 06:11 ufs_ image. disk # du -sh ufs_ image. disk 1. 0G ufs_ image. disk # file ufs_ image. disk ↓ UFSイメージであることも確認 ufs_ image. disk: Unix Fast File system [v1] (little-endian), last mounted on , last written at Mon May 26 06:11:49 2014, clean flag 1, number of blocks 1048576, number of data blocks 1048103, number of cylinder groups 19, block size 8192, fragment size 1024, minimum percentage of free blocks 8, rotational delay 0ms, disk rotational speed 60rps, TIME optimization # 次にmkimg(1)コマンドを実行してディスクイメージを作成します。指定できるパーティショニングスキーマはgpart(8)で指定できるものと同じです。ここではGPTを指定して典型的なディスクイメージを作成しています。1つめのパーティションはブートコード専用の領域、
2つめがファイルシステムの領域で、 3つめがスワップ領域です。 mkimg(1)でディスクイメージを作成 # mkimg -s gpt -b /boot/
pmbr -p freebsd-boot:=/boot/ gptboot -p freebsd-ufs:=ufs_ image. disk -p freebsd-swap::1G -o disk_ image. disk # ls -lh disk_ image. disk ↓ 2GBのファイルが生成されている -rw-r--r-- 1 root wheel 2. 0G May 26 06:13 disk_ image. disk # du -sh disk_ image. disk ↓ 実際には1MBのスパースファイル 1. 0M disk_ image. disk # file disk_ image. disk ↓ ブート可能なディスクイメージ disk_ image. disk: x86 boot sector; partition 1: ID=0xee, starthead 0, startsector 1, 4194341 sectors, code offset 0x31 # 作成したディスクイメージをmdconfig(8)コマンドを使ってデバイスファイルとして認識させてみると、
GPTでパーティショニングされたディスクとして認識されることを確認できます。マウントして中身をチェックすると、 makefs(8)でファイルシステムイメージを作成する際に取り込んだファイルが含まれていることを確認できます。 作成されたディスクイメージを確認 # mdconfig -a -t vnode -f disk_
image. disk md0 # ls -lh /dev/ | grep md0 crw-r----- 1 root operator 0x71 May 26 06:14 md0 crw-r----- 1 root operator 0x72 May 26 06:14 md0p1 crw-r----- 1 root operator 0x73 May 26 06:14 md0p2 crw-r----- 1 root operator 0x74 May 26 06:14 md0p3 # gpart show md0 => 3 4194336 md0 GPT (2. 0G) 3 32 1 freebsd-boot (16K) 35 2097152 2 freebsd-ufs (1. 0G) 2097187 2097152 3 freebsd-swap (1. 0G) # mount /dev/ md0p2 /mnt # find /mnt /mnt /mnt/ test # FreeBSDプロジェクトではこのところシステムのビルドを継続的に実施して品質改善などに努める取り組みを続けています。Jenkinsへの対応やテストスィートの導入などはこうした継続的なビルド作業を実現する取り組みの一環です。特にJuniper Networksにおいてこうした要望が強く、
今回導入されたコマンドもJuniper Networksから提供されたものです。 継続的にシステムをビルドしテスト結果を報告することは、
どのコミットによってシステムが不安定になったのか、 どのコミットで互換性が失われたのかを確認することに繋がります。こうした取り組みを継続することでカーネルとベースシステムの品質を常に高い状態に維持することができます。
告知
2014年6月2日(月)に東京、
近年、
現在の企業活動に求められるシステムの開発時間はますます短くなっており、
本勉強会ではFreeBSDを企業システムのベースに採用し、
本勉強会ではこうした企業システム開発の実践経験などをベースに、
開催日時 | 2014年6月2日 |
---|---|
場所 | KDDIウェブコミュニケーションズ会議室 / 東京都千代田区麹町三丁目6番地 住友不動産麹町ビル3号館 |
参加申込 | http:// |
発表のあとはその場で簡単な懇親会を開きます。軽いつまみとアルコール類は用意しますが、
2014年6月23日に技術評論社本社ビル5F会議室において
FreeBSDをインストールしたことがない、
インストールという作業はパーティショニング、
数台ほどであれば手動インストールでもよいのですが、
開催日時 | 2014年6月23日 |
---|---|
場所 | 技術評論社 本社5F会議室 (東京都新宿区市谷左内町21-13) |
参加申込 | http:// |
2014年7月18日(月)に東京、
企業や教育組織などにおいて使われることが多いディレクトリサービスにActive Directoryがあります。ディレクトリサービスの構築と運用、
第30回目となるFreeBSD勉強会では講師に佐藤広生先生をお招きして、
開催日時 | 2014年7月18日 |
---|---|
場所 | KDDIウェブコミュニケーションズ会議室 / 東京都千代田区麹町三丁目6番地 住友不動産麹町ビル3号館 |
参加申込 | http:// |
発表のあとはその場で簡単な懇親会を開きます。軽いつまみとアルコール類は用意しますが、