4 -------------------------------------
5 image creator for Linux distributions
6 -------------------------------------
12 The tool `mic` is used to create and manipulate images for Linux distributions.
13 It's composed of three subcommand: create, convert, chroot. Subcommand `create`
14 is used to create images with different types, including fs image, loop image,
15 live CD image, live USB image, raw image, etc. For each image type, there is a
16 corresponding subcommand. (Details in the following sections)
18 It supports native running in many mainstream Linux distributions, including:
20 * Fedora (13 and above)
21 * openSUSE (11.3 and above)
22 * Ubuntu (10.04 and above)
23 * Debian (5.0 and above)
31 So far we support `mic` binary rpms/debs for many popular Linux distributions,
32 please see the following list. And you can get the corresponding repository on
34 `<http://download.meego.com/live/devel:/tools:/building>`_
36 If there is no the distribution you want in the list, please install it from
48 *Tips*: Debian 6.0 can use the repository of Debian 5.0.
55 1. Add devel:tools:building repo:
58 $ sudo cat <<REPO > /etc/yum.repos.d/devel-tools-building.repo
59 > [devel-tools-building]
60 > name=Tools for Fedora
61 > baseurl=http://download.meego.com/live/devel:/tools:/building/Fedora_<VERSION>
66 Also you can take the repo file on devel:tools:building as example. For example,
68 `<http://download.meego.com/live/devel:/tools:/building/Fedora_13/devel:tools:building.repo>`_.
78 $ sudo yum install mic
82 1. Add devel:tools:building repo:
85 $ sudo zypper addrepo http:/download.meego.com/live/devel:/tools:/building/openSUSE_<VERSION>/ devel-tools-building
95 $ sudo zypper update libzypp
100 $ sudo zypper install mic
102 Ubuntu/Debian Installation
103 ~~~~~~~~~~~~~~~~~~~~~~~~~~
104 1. Append repo source:
107 $ sudo cat <<REPO >> /etc/apt-sources.list
108 > deb http://download.meego.com/live/devel:/tools:/building/<Ubuntu/Debian>_<VERSION>/ /
111 *Tips*: for Ubuntu 10.10, you should use xUbuntu_10.10 to replace <Ubuntu/Debian>_<VERSIN>.
116 $ sudo apt-get update
121 $ sudo apt-get install mic
125 First, get the source of mic (`<TBD>`_). Then unpack the tar ball, and use make
126 to process the installation.
131 $ tar xzvf mic.tar.gz
147 The configure file for mic can be provided as `/etc/mic/mic.conf`, where you
148 can specify the global settings.
149 The blow is the content of one sample file: ::
155 ; settings for create subcommand
157 cachedir= /var/tmp/mic/cache
161 ; proxy = http://proxy.yourcompany.com:8080/
162 ; no_proxy = localhost,127.0.0.0/8,.yourcompany.com
165 ; settings for convert subcommand
168 ; settings for chroot subcommand
170 In this configuration file, there are four sections: [common] is for general
171 setting, and [create] [convert] [chroot] sections are for the options of
172 corresponding mic subcommands: create, convert, and chroot.
174 In the [create] section, the following values can be specified:
177 Temporary directory used in the image creation
180 Directory to store cached repos and downloaded rpm files
186 Default backend package manager: yum or zypp
190 It's recommended to use `--help` or `help <subcmd>` to get the help message, for
191 the tool is more or less self-documented.
195 Subcommand *create* is used for creating images. To create an image, you should
196 give the sub-sub commands which presents the image type you want, and also you
197 should provide an argument which presents the kickstart file for using, such
200 $ sudo mic create fs test.ks
202 The supported image types can be listed using `mic create --help` ::
205 livecd create livecd image
206 liveusb create liveusb image
207 loop create loop image
210 For each image type, you can get their own options by `--help` option, like
211 `mic cr fs --help`. Meanwhile, there are some common options that can be used
212 by all image types, as the following ::
214 -h, --help show this help message and exit
215 --logfile=LOGFILE Path of logfile
216 -c CONFIG, --config=CONFIG
217 Specify config file for mic
218 -k CACHEDIR, --cachedir=CACHEDIR
219 Cache directory to store the downloaded
220 -o OUTDIR, --outdir=OUTDIR
223 Specify repo architecture
224 --release=RID Generate a release of RID with all neccessary
225 files,when @BUILD_ID@ is contained in kickstart file,
226 it will be replaced by RID
227 --record-pkgs=RECORD_PKGS
228 Record the info of installed packages, multiple values
229 can be specified which joined by ",", valid values:
230 "name", "content", "license"
231 --pkgmgr=PKGMGR Specify backend package manager
232 --local-pkgs-path=LOCAL_PKGS_PATH
233 Path for local pkgs(rpms) to be installed
235 *Tips*: the common options can be normally put before sub-sub command, but also
236 can be after them, such as: ::
238 $ sudo mic cr --outdir output fs test.ks
242 $ sudo mic cr fs test.ks --outdir output
244 *Tips*: if you failed to create armv7* image, the reason may be qemu/qemu-arm on your host is lower than required, please update qemu/qemu-arm higher than 0.13.0.
248 Subcommand *chroot* is used to chroot an image file. Given an image file, you
249 can use `mic chroot` to chroot inside the image, and then you can do some
250 modification to the image. After you logout, the image file will keep your
251 changes. It's a convenient way to hack your image file.
255 $ sudo mic chroot test.img
257 Running 'mic convert'
258 ---------------------
259 Subcommand *convert* is used for converting an image to another one with
260 different image type. Using `convert`, you can get your needed image type
261 comfortably. So far converting livecd to liveusb and liveusb to livecd is
266 $ sudo mic convert test.iso liveusb
270 When you encounter some errors, and you want to know more about it, please use
271 debug/verbose output to get more details in the process by adding `-d/-v`. And
272 it's recommended to add `-d/--debug` or `-v/--verbose` like: ::
274 $ sudo mic -d cr fs test.ks