Chinaunix首页 | 论坛 | 博客
  • 博客访问: 246025
  • 博文数量: 41
  • 博客积分: 1523
  • 博客等级: 上尉
  • 技术积分: 579
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-05 21:23
文章分类

全部博文(41)

文章存档

2014年(1)

2013年(2)

2012年(1)

2011年(2)

2010年(3)

2009年(1)

2008年(20)

2007年(11)

分类: LINUX

2008-05-04 14:34:48

usage: virt-install [options]
使用方式:virt-install 选项 参数

-h, --help
显示帮助。

-n NAME, --name=NAME
设定虚拟机的注册名。

-r MEMORY, --ram=MEMORY
设定虚拟机所使用的内存。

-u UUID, --uuid=UUID
设定虚拟机的UUID,不设定默认随即分配UUID号。

--vcpus=VCPUS
设定虚拟机使用的虚拟CPU。

-f DISKFILE, --file=DISKFILE
设定虚拟机使用的磁盘镜像。

-s DISKSIZE, --file-size=DISKSIZE
设定虚拟机使用的磁盘镜像的大小,单位是GB。

--nonsparse
设定非低密度文件作为磁盘?(这个选项目前我也不明白,一般也没有用到)

-m MAC, --mac=MAC
设定虚拟机使用网卡的MAC地址,如果不指定的话系统会随即生成一个MAC地址给虚拟机。

-b BRIDGE, --bridge=BRIDGE
设定网卡与宿主机的桥接。

--vnc
设定使用VNC作为图形支持。

--vncport=VNCPORT
设定VNC使用的端口。

--sdl
设定使用SDL作为图形支持。

--nographics
设定不使用图形界面作为控制台。

--noautoconsole
设定关闭自动尝试连接到控制台。

-v, --hvm
设定使用HVM方式安装虚拟机。

-c CDROM, --cdrom=CDROM
设定宿主机上作为虚拟CDROM的路径。

-p, --paravirt
设定永久虚拟的用户?(这个选项目前我也不是很明白,一般也不用到)

-l LOCATION, --location=LOCATION
设定网络安装的资源定位,目前只支持NFS、HTTP和FTP的方式

-x EXTRA, --extra-args=EXTRA
附加参数

-d, --debug
显示Debug信息

/etc/xen/scripts/network-bridge使用方法
network-bridge start bridge=xenbr1 netdev=eth1 vifnum=1

查看映像文件:
方法1
losetup /dev/loop0 test.img
fdisk -l -u /dev/loop0
Disk /dev/loop0: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes

      Device Boot      Start         End      Blocks   Id  System
/dev/loop0p1   *          63    41913584    20956761    7  HPFS/NTFS

offset=$((512*63))
mount -t ntfs-3g -o loop,offset=32256 /var/test.img /mnt

方法2:
losetup /dev/loop0 test.img
kpartx -a /dev/loop0
mount -t ntfs-3g /dev/mapper/loop0p1 /mnt

方法3:
lomount -t ntfs-3g -diskimage test.img -partition 1  /mnt
用 dd 创建一个自动增长的块文件: 
比如要创建一个从 0 字节开始最大可以增长到 5GB 的虚拟机文件。
dd if=/dev/zero of=newfile.img bs=1M count=0 seek=5k
这样我们创建文件以后,用 ls -l 看文件是 5G 我们使用 du -sh 来统计这个文件的大小是0,这个文件会随着我们的使用自动增大,到5G截止。

增加块设备
xm block-attach test01 file:/var/lib/xen/images/test01/aaa xvdb w

删除块设备
1、查看节点名称 (在 vm 上)
cat /sys/block/xvda/device/nodename
2、删除设备
xm block-detach test01 deviceid -f

virt-install example
virt-install -n test01 -r 1024 -b xenbr0 -f /var/lib/xen/images/test01/v_test.img -l ftp://172.16.0.240/setup/centos5.3x86_64 -x ks=

调整虚机硬盘大小:

1、我们可以在实体机器上启动 lvm 把虚机直接装在 逻辑卷 里面,这样块设备就可以改变了。

vgdisplay

lvresize -l +512 /dev/device/name

lvresize -l -512 /dev/device/name

然后关闭虚机。把设备挂在另一个虚机上。

(实体机测试完卷不能删除,需要重启机器,原因未知)

改变分区大小:

1  fdisk 改小后 用 resize2fs 修改。 

这个比较容易用 resize2fs 修改就好了。但要注意 fdisk 分区的时候要略大于 resize2fs 设置的容量。

resize2fs 大小 * 4k * 1.05 = k

2  使用 parted 修改。这个经常会提示

(File system has an incompatible feature enabled.)

这个是因为文件系统有 has_journal ext_attr resize_inode

先去掉,然后重建就可以了。

debugfs -w /dev/xvdb1 -R "features ^has_journal ^ext_attr ^resize_inode"

然后就可以 parted /dev/xvdb print free

parted /dev/xvdb resize 1 32.3kB 2048MB

这中间要 e2fsck n 次

处理好分区以后也要还原属性

debugfs -w /dev/xvdb1 -R "features has_journal ext_attr resize_inode"

之后也要 e2fsck n 次。

(has_journal ext_attr resize_inode dir_index filetype sparse_super)

ext3 特性一般就这几种,不使用 selinux 的可以不考虑 ext_attr

修改分区时候计算用到的一些知识。

对于大小为4k的文件系统块来说,块组大小为 128M。

计算 4096(块大小4k)*8(bit)*4k(每位表示一个块)/1024= 128M

每个块组包含一个块位图块,一个 inode 位图块,一个或多个块用于描述 inode 表和用于存储文件数据的数据块

块位图用于描述该块组所管理的块的分配状态。如果某个块对应的位未置位,那么代表该块未分配,可以用于存储数据;否则,代表该块已经用于存储数据或者该块不能够使用(譬如该块物理上不存在)。由于块位图仅占一个块,因此这也就决定了块组的大小。

Inode位图用于描述该块组所管理的inode的分配状态。我们知道inode是用于描述文件的元数据,每个inode对应文件系统中唯一的一个号,如果inode位图中相应位置位,那么代表该inode已经分配出去;否则可以使用。由于其仅占用一个块,因此这也限制了一个块组中所能够使用的最大 inode数量。

Inode表用于存储inode信息。它占用一个或多个块(为了有效的利用空间,多个inode存储在一个块中),其大小取决于文件系统创建时的参数,由于inode位图的限制,决定了其最大所占用的空间。

超级块采用了一种稀疏的方式来存储这些拷贝,只有块组号是3, 5 ,7的幂的块组(譬如说1,3,5,7,9,25,49…)才备份这个拷贝.

例如:查看一个硬盘

[root@localhost ~]# tune2fs -l /dev/xvda1
tune2fs 1.39 (29-May-2006)
Filesystem volume name:   /
Last mounted on:         
Filesystem UUID:          1fca970f-bdc0-4ea6-a889-3f3fa83a7f9f
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery sparse_super large_file
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              524288
Block count:              524112
Reserved block count:     26205
Free blocks:              132630
Free inodes:              459114
First block:              0
Block size:               4096
Fragment size:            4096
Reserved GDT blocks:      127
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         32768
Inode blocks per group:   1024
Filesystem created:       Sat Aug  8 11:05:41 2009
Last mount time:          Mon Aug 10 17:19:06 2009
Last write time:          Mon Aug 10 17:19:06 2009
Mount count:              1
Maximum mount count:      -1
Last checked:             Mon Aug 10 17:18:52 2009
Check interval:           0 ()
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:               128
Journal inode:            8
Default directory hash:   tea
Directory Hash Seed:      a19e6f74-f897-4f81-92bf-36eba9ecee18
Journal backup:           inode blocks

从上面可以看出块大小是4k   Block size:               4096

因块组有位图限制,仅占用一个块,所以组最大 4096*8(bit) = 32768

块一共  Block count:              524112

inode 占用  Inode blocks per group:   1024

计算有多少个组  524112/32768 = 15

计算磁盘容量为  (524112-4(保留)-5-2(备份SB)-15×1024 )*4k/1024=1987M

在用 df 验证 一样,OK 证明我们计算正确。

 

一个配置文件样例:
name = "winxp"
maxmem = 2048
memory = 2048
cpus='0-3'
vcpus = 2
builder = "hvm"
kernel = "/usr/lib/xen/boot/hvmloader"
boot = "c"
pae = 0
acpi = 1
apic = 0
localtime = 1
on_poweroff = "destroy"
on_reboot = "restart"
on_crash = "restart"
device_model = "/usr/lib64/xen/bin/qemu-dm"
usbdevice = "tablet"
sdl = 0
vnc = 1
vncunused = 1
keymap = "en-us"
disk = [ "phy:/dev/xen_images/winxp,sda,w", "file:/export/home/install.iso,hda:cdrom,r'
]
vif = [ "bridge=,type=ioemu" ]
serial = "pty"

阅读(1517) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~