bump up to release 0.28.5
[tools/mic.git] / doc / man.rst
1 =====
2  mic 
3 =====
4
5 SYNOPSIS
6 ========
7
8 | mic [GLOBAL-OPTS] create SUBCOMMAND <ksfile> [OPTION]
9 | mic [GLOBAL-OPTS] chroot [OPTION] <imgfile>
10
11 DESCRIPTION
12 ===========
13
14 The tools `mic` is used to create and manipulate images for Linux distributions.
15 It is composed of two subcommand: `create`, `chroot`.
16
17 USAGE
18 =====
19
20 create
21 ------
22 This command is used to create various images, including loop.
23
24 Usage:
25  | mic [GLOBAL-OPTS] create(cr) SUBCOMMAND <ksfile> [OPTION]
26
27 Subcommands:
28
29  | auto         auto detect image type from magic header
30  | fs           create fs image, which is also chroot directory
31  | loop         create loop image, including multi-partitions
32  | raw          create raw image, containing multi-partitions
33  | qcow         create qcow image
34
35 Options:
36
37   -h, --help  show the help message
38   --logfile=LOGFILE  specify the path of logfile, save the output to logfile LOGFILE
39   -c CONFIG, --config=CONFIG  specify configure file for mic, default is /etc/mic/mic.conf
40   -k CACHEDIR, --cachedir=CACHEDIR  cache directory used to store the downloaded files and packages
41   -o OUTDIR, --outdir=OUTDIR  directory used to locate the output image and files
42   -A ARCH, --arch=ARCH  specify repo architecture, genarally mic would detect the architecture, if existed more than one architecture, mic would give hint to you
43   --local-pkgs-path=LOCAL_PKGS_PATH  specify the path for local rpm packages, which would be stored your own rpm packages
44   --pkgmgr=PKGMGR  specify backend package mananger, currently yum and zypp available
45   --record-pkgs=RECORD_PKGS  record the info of installed packages, multiple values can be specified which joined by ",", valid values: "name", "content", "license"
46   --pack-to=PACK_TO   pack the images together into the specified achive, extension supported: .zip, .tar, .tar.gz, .tar.bz2, etc. by default, .tar will be used
47   --release=RID  generate a release of RID with all necessary files, when @BUILD_ID@ is contained in kickstart file, it will be replaced by RID. sample values: "latest", "tizen_20120101.1"
48   --copy-kernel  copy kernel files from image /boot directory to the image output directory
49   --runtime=RUNTIME  Specify  runtime mode, avaiable: bootstrap
50   --install-pkgs=INSTALL_PKGS  Specify what type of packages to be installed, valid: source, debuginfo, debugsource
51   --check-pkgs=CHECK_PKGS  Check if given packages would be installed, packages should be separated by comma
52   --tmpfs  Setup tmpdir as tmpfs to accelerate, experimental feature, use it if you have more than 4G memory
53   --strict-mode  Abort creation of image, if there are some errors during rpm installation
54
55 Options for fs image:
56   --include-src  generate a image with source rpms included; to enable it, user should specify the source repo in the ks file
57
58 Options for loop image:
59   --shrink       whether to shrink loop images to minimal size
60   --compress-image=COMPRESS_IMAGE  compress all loop images with 'gz' or 'bz2' or 'lzo'
61   --compress-disk-image=COMPRESS_DISK_IMAGE  same with --compress-image
62
63 Options for raw image:
64   --compress-image=COMPRESS_IMAGE  compress all raw images with 'gz' or 'bz2'
65   --compress-disk-image=COMPRESS_DISK_IMAGE  same with --compress-image
66   --generate-bmap=GENERATE_BMAP also generate the block map file
67   --fstab-entry=FSTAB_ENTRY  Set fstab entry, 'name' means using device names, 'uuid' means using filesystem uuid
68
69 Examples:
70
71  | mic create loop tizen.ks
72  | mic cr fs tizen.ks --local-pkgs-path=localrpm
73
74 chroot
75 ------
76 This command is used to chroot inside the image, it's a great enhancement of chroot command in linux system.
77
78 Usage:
79
80  | mic chroot(ch) <imgfile>
81
82 Options:
83
84   -h, --help  show the help message
85   -s SAVETO, --saveto=SAVETO  save the unpacked image to specified directory SAVETO
86
87 Examples:
88
89  | mic chroot loop.img
90
91 Advanced Usage
92 ==============
93 The advanced usage is just for bootstrap, please skip it if you don't care about it.
94
95 The major purpose to use bootstrap is that some important packages (like rpm) are customized
96 a lot in the repo which you want to create image, and mic must use the customized rpm to
97 create images, or the images can't be boot. So mic will create a bootstrap using the repo
98 in the ks file at first, then create the image via chrooting, which can make mic using the
99 chroot environment with the customized rpm.
100
101 Now mic will use bootstrap to create image by default, and to meet your requirement, you can
102 also change the setting for bootstrap (/etc/mic/bootstrap.conf):
103
104 | [main]
105 | # which distro will be used for creating bootstrap
106 | distro_name = tizen
107 | # which dir will be located when creating bootstrap
108 | rootdir = /var/tmp/mic-bootstrap
109 | # whether to enable the bootstrap mode
110 | enable = true
111
112 | [tizen] # the supported distro for creating bootstrap
113 | # which packages will be optional when creating bootstrap for this distro
114 | optional:
115 | # which packages will be required when creating bootstrap for this distro
116 | packages:
117
118 KNOWN ISSUES
119 ============
120 Bug of latest syslinux package
121 ------------------------------
122 In some new Linux distributions, the "syslinux" package in their official
123 software repositories is the version 4.04. It will cause segment fault for
124 a fatal bug, and mic will failed with syslinux installation errors.
125
126 The solution is to install the patched "syslinux" package in MeeGo or Tizen's
127 tools repos, until the official released one being fixed.
128
129 Failed to create btrfs image in openSUSE
130 ----------------------------------------
131 When creating btrfs image in openSUSE, it would hang up with showing image kernel
132 panic. This issue impact all openSUSE distributions: 12.1, 11.4, 11.3, etc
133
134 REPORTING BUGS
135 ==============
136 The source code is tracked in review.tizen.org:
137
138     https://review.tizen.org/git/tools/mic
139
140 The bug is registered in tizen.org:
141
142     https://bugs.tizen.org/jira
143
144 Please report issues for bugs or feature requests.