升級內核
日期:2011-08-02 來源: 未知 分享至:
-
一、下載最新內核源碼。
從內核官網下載至當前目錄下
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2
二、解壓內核源碼,移動到合適的位置。
tar jxvf linux-3.0.tar.bz2 -C /usr/src
cd /usr/src
ln -s linux-3.0 linux 做個軟鏈接也有人說可以不做。
lrwxrwxrwx 1 root root 9 Jul 29 17:24 linux -> linux-3.0
drwxrwxr-x 24 root root 4096 Aug 1 11:14 linux-3.0
三、編譯安裝內核源碼
1,make mrproper
用來消除原來編譯的影響,對之前沒編譯過內核的可以跳過此步,但建議使用一下這條命令 。
2,make oldconfig
用你當前內核的設置作爲配置標準,重新編譯新內核,這樣升級簡單。
這裏還有幾種方式可以選擇:
(1)make config 單行模式
(2)make menuconfig 圖形模式
(3)make xconfig 基於xwindows模式
(4)make gconfig 基於gtk模式
(5)make defconfig 根據機器類型對內核默認配置
3,make
編譯內核,由於是完全編譯,所以時間比較長,大概需要60分鐘。
4,make modules_install
其作用是將模塊拷貝到需要的目錄中。但先要 cd /lib/modules,mkdir 3.0.0,cd 3.0.0,mkdir build source
如果開始不建這些目錄,這步時會提醒你建的。內核升級成功後可以用ll查看
lrwxrwxrwx 1 root root 18 Aug 1 09:22 build -> /usr/src/linux-3.0
drwxrwxr-x 12 root root 4096 Aug 1 09:23 kernel
-rw-rw-r-- 1 root root 590623 Aug 1 09:31 modules.alias
-rw-rw-r-- 1 root root 575812 Aug 1 09:31 modules.alias.bin
-rw-rw-r-- 1 root root 6411 Aug 1 09:22 modules.builtin
-rw-rw-r-- 1 root root 8037 Aug 1 09:31 modules.builtin.bin
-rw-rw-r-- 1 root root 69 Aug 1 09:31 modules.ccwmap
-rw-rw-r-- 1 root root 220714 Aug 1 09:31 modules.dep
-rw-rw-r-- 1 root root 321992 Aug 1 09:31 modules.dep.bin
-rw-rw-r-- 1 root root 665 Aug 1 09:31 modules.ieee1394map
-rw-rw-r-- 1 root root 218 Aug 1 09:31 modules.inputmap
-rw-rw-r-- 1 root root 15756 Aug 1 09:31 modules.isapnpmap
-rw-rw-r-- 1 root root 153 Aug 1 09:31 modules.ofmap
-rw-rw-r-- 1 root root 84721 Aug 1 09:22 modules.order
-rw-rw-r-- 1 root root 383664 Aug 1 09:31 modules.pcimap
-rw-rw-r-- 1 root root 1261 Aug 1 09:31 modules.seriomap
-rw-rw-r-- 1 root root 209839 Aug 1 09:31 modules.symbols
-rw-rw-r-- 1 root root 267370 Aug 1 09:31 modules.symbols.bin
-rw-rw-r-- 1 root root 924556 Aug 1 09:31 modules.usbmap
lrwxrwxrwx 1 root root 18 Aug 1 09:22 source -> /usr/src/linux-3.0
5,make install
複製內核和System.map,及修改Grub.conf的步驟,都由make install自動實現。
cat /boot/grub/grub.conf
default=0 //把1改成0就好了。
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title Fedora (3.0.0)
root (hd0,0)
kernel /vmlinuz-3.0.0 ro root=/dev/mapper/vg_fc13-lv_root rd_LVM_LV=vg_fc13/lv_root rd_LVM_LV=vg_fc13/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 KEYTABLE=us rhgb quiet
initrd /initramfs-3.0.0.img
title Fedora (2.6.38)
root (hd0,0)
kernel /vmlinuz-2.6.38 ro root=/dev/mapper/vg_fc13-lv_root rd_LVM_LV=vg_fc13/lv_root rd_LVM_LV=vg_fc13/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.38.img
四、安裝完畢,重啓。
init 6
重啓後沒問題就算成功,若有問題,大部分是make config這一部分沒有定製好內核模塊等,根據提示可以重新編譯,加上需要的模塊,
重來幾次就好了。
五、檢測
uname -r
3.0.0
http://www.linuxso.com/linuxrumen/2214.html
------------------------------------------------------------------------------------------------------------------------------------------
RHEL6 LVM管理 partx -a /dev/sda
時間:2012-03-30 11:55來源:未知 作者:admin 點擊:210次
建立LVM分區------------- [root@localhost ~]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help):
建立LVM分區-------------
[root@localhost ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
First cylinder (781-1305, default 781):
Using default value 781
Last cylinder, +cylinders or +size{K,M,G} (781-1305, default 1305): +1G
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e (Linux LVM)
Command (m for help): n
First cylinder (913-1305, default 913):
Using default value 913
Last cylinder, +cylinders or +size{K,M,G} (913-1305, default 1305): +1G
Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): 8e
Changed system type of partition 6 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@localhost ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6
建立PV-------------
[root@localhost ~]# pvcreate /dev/sda5
Physical volume "/dev/sda5" successfully created
[root@localhost ~]# pvcreate /dev/sda6
Physical volume "/dev/sda6" successfully created
建立VG-------------
[root@localhost ~]# vgcreate myvg /dev/sda5
Volume group "myvg" successfully created
擴展VG-------------
[root@localhost ~]# vgextend myvg /dev/sda6
Volume group "myvg" successfully extended
縮減VG-------------
[root@localhost ~]# vgreduce myvg /dev/sda6
Removed "/dev/sda6" from volume group "myvg"
建立LV-------------
[root@localhost ~]# lvcreate -n mylv -L 800M myvg
Logical volume "mylv" created
建立文件系統-------------
[root@localhost ~]# mkfs.ext4 /dev/myvg/mylv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
51296 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=209715200
7 block groups
32768 blocks per group, 32768 fragments per group
7328 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
建立掛載點-------------
[root@localhost ~]# mkdir /new
編輯fstab-------------
[root@localhost ~]# vi /etc/fstab
掛載分區-------------
[root@localhost ~]# mount -a
擴展LV-------------
[root@localhost ~]# lvresize -L +800M /dev/myvg/mylv
Extending logical volume mylv to 1.27 GiB
Logical volume mylv successfully resized
調整文件系統大小-------------
[root@localhost ~]# resize2fs /dev/myvg/mylv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /new; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 6
Performing an on-line resize of /dev/myvg/mylv to 1331200 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 1331200 blocks long.
卸載分區-------------
[root@localhost ~]# umount /dev/myvg/mylv
檢查分區-------------
[root@localhost ~]# fsck -f /dev/myvg/mylv
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/myvg-mylv: 11/331216 files (0.0% non-contiguous), 52784/1331200 blocks
調整文件系統大小-------------
[root@localhost ~]# resize2fs /dev/myvg/mylv 600M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 614400 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 614400 blocks long.
調整LV大小-------------
[root@localhost ~]# lvreduce -L 600M /dev/myvg/mylv
WARNING: Reducing active logical volume to 600.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
Reducing logical volume mylv to 600.00 MiB
Logical volume mylv successfully resized
掛載分區-------------
[root@localhost ~]# mount -a
移動PV-------------
[root@localhost ~]# pvmove /dev/sda5
/dev/sda5: Moved: 2.0%
/dev/sda5: Moved: 91.3%
/dev/sda5: Moved: 100.0%
縮減VG-------------
[root@localhost ~]# vgreduce myvg /dev/sda5
Removed "/dev/sda5" from volume group "myvg"
刪除PV-------------
[root@localhost ~]# pvremove /dev/sda5
Labels on physical volume "/dev/sda5" successfully wiped
卸載分區-------------
[root@localhost /]# umount /dev/myvg/mylv
修改LV活動狀態
[root@localhost /]# lvchange -an /dev/myvg/mylv
移除LV-------------
[root@localhost /]# lvremove /dev/myvg/mylv
Logical volume "mylv" successfully removed
移除VG-------------
[root@localhost /]# vgremove myvg
Volume group "myvg" successfully removed
移除PV-------------
[root@localhost /]# pvremove /dev/sda6
Labels on physical volume "/dev/sda6" successfully wiped
----------------------------------------------------------------------------------------------------------------------------------------------------------
kpartx命令的作用,是讓Linux內核讀取一個設備上的分區表,然後生成代表相應分區的設備。
kpartx -l imagefile 可以查看一個映像文件中的分區,使用 kpartx -a imagefile 命令後,就可以通過 /dev/mapper/loop0pX (其中X是 分區號)來訪問映像。
通過losetup和kpartx使用磁盤文件備份和恢復LVM卷
在使用Kvm和XEN虛擬系統時,常常要對虛擬機進行clone。一種方式是採用img磁盤文件來作爲虛擬機磁盤,另一種方式是採用卷管理(LVM)來管理虛擬機磁盤。
推薦使用LVM卷管理,可以充分利用LVM的snapshot進行備份和複製。不過,在使用LVM卷管理時,有時候也需要直接訪問LVM的LV,從中複製一些文件。
這裏解釋 kpartx 工具,可以實現對塊文件(包括卷管理的LV)到設備文件的映射,這樣就可以使用fdisk和mount命令訪問邏輯捲了。
參考
* Kpartx: a tool for mounting partitions within an image file
* Playing with KVM and LVM on Linux
說明
kpartx 是用來映像任何分區塊設備到設備文件的工具,是Linux multipath-tools 中的一個部分。
使用命令 kpartx -l imagefile 可以產看一個映像文件中的分區,使用 kpartx -a imagefile 命令後,就可以通過 /dev/mapper/loop0pX (其中X是 分區號)來訪問映像。
此外,可以通過 mount /dev/mapper/loop0pX /mnt/ -o loop,ro 來訪問,使用後可以使用 kpartx -d imagefile 來卸載。
對於使用 dd 命令複製的LVM卷(我採用此方法備份KVM虛擬機),也可以使用 kpartx 來映射爲設備文件。
複製邏輯捲到磁盤鏡像
使用virt-manger生成一個磁盤映像文件,然後使用losetup命令迴環掛載
losetup /dev/loop2 /vms/win2k3.img
然後再使用dd命令進行鏡像成功
dd if=/dev/mapper/VGwindows-LVwindows of=/dev/loop2
完成後,先卸載loop設備
losetup -d /dev/loop2
之後,就可以在kvm中使用這個磁盤鏡像了,完全沒有任何問題。
備份的LVM卷掛載和文件複製
以下是將備份的LVM邏輯卷採用 kpartx 映射爲設備文件,然後掛載分區進行文件複製。
kpartx -av /nfs_share/x-box_LV/LVmyinfoserv_opt
add map loop2p1 (253:0): 0 12578832 linear /dev/loop2 63
mount /dev/mapper/loop2p1 /mnt
掛載後可以直接訪問分區中的文件(Ext3文件系統)。
PARTX(8)
PARTX(8)
NAME
partx - telling the kernel about presence and numbering of on-disk partitions.
SYNOPSIS
partx [-a|-d|-l] [--type TYPE] [--nr M-N] [partition] disk
DESCRIPTION
Given a block device (
disk
) and a partition table
type
, try to parse the partition table, and list the con-
tents. Optionally add or remove partitions.
This is not an fdisk - adding and removing partitions is not a change of the disk, but just telling the kernel
about presence and numbering of on-disk partitions.
OPTIONS
-a
add specified partitions or read disk and add all partitions
-d delete specified or all partitions
-l list partitions
-
一、下載最新內核源碼。
從內核官網下載至當前目錄下
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.tar.bz2
二、解壓內核源碼,移動到合適的位置。
tar jxvf linux-3.0.tar.bz2 -C /usr/src
cd /usr/src
ln -s linux-3.0 linux 做個軟鏈接也有人說可以不做。
lrwxrwxrwx 1 root root 9 Jul 29 17:24 linux -> linux-3.0
drwxrwxr-x 24 root root 4096 Aug 1 11:14 linux-3.0
三、編譯安裝內核源碼
1,make mrproper
用來消除原來編譯的影響,對之前沒編譯過內核的可以跳過此步,但建議使用一下這條命令 。
2,make oldconfig
用你當前內核的設置作爲配置標準,重新編譯新內核,這樣升級簡單。
這裏還有幾種方式可以選擇:
(1)make config 單行模式
(2)make menuconfig 圖形模式
(3)make xconfig 基於xwindows模式
(4)make gconfig 基於gtk模式
(5)make defconfig 根據機器類型對內核默認配置
3,make
編譯內核,由於是完全編譯,所以時間比較長,大概需要60分鐘。
4,make modules_install
其作用是將模塊拷貝到需要的目錄中。但先要 cd /lib/modules,mkdir 3.0.0,cd 3.0.0,mkdir build source
如果開始不建這些目錄,這步時會提醒你建的。內核升級成功後可以用ll查看
lrwxrwxrwx 1 root root 18 Aug 1 09:22 build -> /usr/src/linux-3.0
drwxrwxr-x 12 root root 4096 Aug 1 09:23 kernel
-rw-rw-r-- 1 root root 590623 Aug 1 09:31 modules.alias
-rw-rw-r-- 1 root root 575812 Aug 1 09:31 modules.alias.bin
-rw-rw-r-- 1 root root 6411 Aug 1 09:22 modules.builtin
-rw-rw-r-- 1 root root 8037 Aug 1 09:31 modules.builtin.bin
-rw-rw-r-- 1 root root 69 Aug 1 09:31 modules.ccwmap
-rw-rw-r-- 1 root root 220714 Aug 1 09:31 modules.dep
-rw-rw-r-- 1 root root 321992 Aug 1 09:31 modules.dep.bin
-rw-rw-r-- 1 root root 665 Aug 1 09:31 modules.ieee1394map
-rw-rw-r-- 1 root root 218 Aug 1 09:31 modules.inputmap
-rw-rw-r-- 1 root root 15756 Aug 1 09:31 modules.isapnpmap
-rw-rw-r-- 1 root root 153 Aug 1 09:31 modules.ofmap
-rw-rw-r-- 1 root root 84721 Aug 1 09:22 modules.order
-rw-rw-r-- 1 root root 383664 Aug 1 09:31 modules.pcimap
-rw-rw-r-- 1 root root 1261 Aug 1 09:31 modules.seriomap
-rw-rw-r-- 1 root root 209839 Aug 1 09:31 modules.symbols
-rw-rw-r-- 1 root root 267370 Aug 1 09:31 modules.symbols.bin
-rw-rw-r-- 1 root root 924556 Aug 1 09:31 modules.usbmap
lrwxrwxrwx 1 root root 18 Aug 1 09:22 source -> /usr/src/linux-3.0
5,make install
複製內核和System.map,及修改Grub.conf的步驟,都由make install自動實現。
cat /boot/grub/grub.conf
default=0 //把1改成0就好了。
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
#hiddenmenu
title Fedora (3.0.0)
root (hd0,0)
kernel /vmlinuz-3.0.0 ro root=/dev/mapper/vg_fc13-lv_root rd_LVM_LV=vg_fc13/lv_root rd_LVM_LV=vg_fc13/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=en_US.UTF-8 KEYTABLE=us rhgb quiet
initrd /initramfs-3.0.0.img
title Fedora (2.6.38)
root (hd0,0)
kernel /vmlinuz-2.6.38 ro root=/dev/mapper/vg_fc13-lv_root rd_LVM_LV=vg_fc13/lv_root rd_LVM_LV=vg_fc13/lv_swap rd_NO_LUKS rd_NO_MD rd_NO_DM LANG=zh_CN.UTF-8 KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.38.img
四、安裝完畢,重啓。
init 6
重啓後沒問題就算成功,若有問題,大部分是make config這一部分沒有定製好內核模塊等,根據提示可以重新編譯,加上需要的模塊,
重來幾次就好了。
五、檢測
uname -r
3.0.0
http://www.linuxso.com/linuxrumen/2214.html
------------------------------------------------------------------------------------------------------------------------------------------
RHEL6 LVM管理 partx -a /dev/sda
時間:2012-03-30 11:55來源:未知 作者:admin 點擊:210次
建立LVM分區------------- [root@localhost ~]# fdisk /dev/sda WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help):
建立LVM分區-------------
[root@localhost ~]# fdisk /dev/sda
WARNING: DOS-compatible mode is deprecated. It's strongly recommended to
switch off the mode (command 'c') and change display units to
sectors (command 'u').
Command (m for help): n
First cylinder (781-1305, default 781):
Using default value 781
Last cylinder, +cylinders or +size{K,M,G} (781-1305, default 1305): +1G
Command (m for help): t
Partition number (1-5): 5
Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e (Linux LVM)
Command (m for help): n
First cylinder (913-1305, default 913):
Using default value 913
Last cylinder, +cylinders or +size{K,M,G} (913-1305, default 1305): +1G
Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): 8e
Changed system type of partition 6 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@localhost ~]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6
建立PV-------------
[root@localhost ~]# pvcreate /dev/sda5
Physical volume "/dev/sda5" successfully created
[root@localhost ~]# pvcreate /dev/sda6
Physical volume "/dev/sda6" successfully created
建立VG-------------
[root@localhost ~]# vgcreate myvg /dev/sda5
Volume group "myvg" successfully created
擴展VG-------------
[root@localhost ~]# vgextend myvg /dev/sda6
Volume group "myvg" successfully extended
縮減VG-------------
[root@localhost ~]# vgreduce myvg /dev/sda6
Removed "/dev/sda6" from volume group "myvg"
建立LV-------------
[root@localhost ~]# lvcreate -n mylv -L 800M myvg
Logical volume "mylv" created
建立文件系統-------------
[root@localhost ~]# mkfs.ext4 /dev/myvg/mylv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
51296 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=209715200
7 block groups
32768 blocks per group, 32768 fragments per group
7328 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840
Writing inode tables: done
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 32 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
建立掛載點-------------
[root@localhost ~]# mkdir /new
編輯fstab-------------
[root@localhost ~]# vi /etc/fstab
掛載分區-------------
[root@localhost ~]# mount -a
擴展LV-------------
[root@localhost ~]# lvresize -L +800M /dev/myvg/mylv
Extending logical volume mylv to 1.27 GiB
Logical volume mylv successfully resized
調整文件系統大小-------------
[root@localhost ~]# resize2fs /dev/myvg/mylv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /new; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 6
Performing an on-line resize of /dev/myvg/mylv to 1331200 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 1331200 blocks long.
卸載分區-------------
[root@localhost ~]# umount /dev/myvg/mylv
檢查分區-------------
[root@localhost ~]# fsck -f /dev/myvg/mylv
fsck from util-linux-ng 2.17.2
e2fsck 1.41.12 (17-May-2010)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/mapper/myvg-mylv: 11/331216 files (0.0% non-contiguous), 52784/1331200 blocks
調整文件系統大小-------------
[root@localhost ~]# resize2fs /dev/myvg/mylv 600M
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 614400 (1k) blocks.
The filesystem on /dev/myvg/mylv is now 614400 blocks long.
調整LV大小-------------
[root@localhost ~]# lvreduce -L 600M /dev/myvg/mylv
WARNING: Reducing active logical volume to 600.00 MiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce mylv? [y/n]: y
Reducing logical volume mylv to 600.00 MiB
Logical volume mylv successfully resized
掛載分區-------------
[root@localhost ~]# mount -a
移動PV-------------
[root@localhost ~]# pvmove /dev/sda5
/dev/sda5: Moved: 2.0%
/dev/sda5: Moved: 91.3%
/dev/sda5: Moved: 100.0%
縮減VG-------------
[root@localhost ~]# vgreduce myvg /dev/sda5
Removed "/dev/sda5" from volume group "myvg"
刪除PV-------------
[root@localhost ~]# pvremove /dev/sda5
Labels on physical volume "/dev/sda5" successfully wiped
卸載分區-------------
[root@localhost /]# umount /dev/myvg/mylv
修改LV活動狀態
[root@localhost /]# lvchange -an /dev/myvg/mylv
移除LV-------------
[root@localhost /]# lvremove /dev/myvg/mylv
Logical volume "mylv" successfully removed
移除VG-------------
[root@localhost /]# vgremove myvg
Volume group "myvg" successfully removed
移除PV-------------
[root@localhost /]# pvremove /dev/sda6
Labels on physical volume "/dev/sda6" successfully wiped
----------------------------------------------------------------------------------------------------------------------------------------------------------
kpartx命令的作用,是讓Linux內核讀取一個設備上的分區表,然後生成代表相應分區的設備。
kpartx -l imagefile 可以查看一個映像文件中的分區,使用 kpartx -a imagefile 命令後,就可以通過 /dev/mapper/loop0pX (其中X是 分區號)來訪問映像。
通過losetup和kpartx使用磁盤文件備份和恢復LVM卷
在使用Kvm和XEN虛擬系統時,常常要對虛擬機進行clone。一種方式是採用img磁盤文件來作爲虛擬機磁盤,另一種方式是採用卷管理(LVM)來管理虛擬機磁盤。
推薦使用LVM卷管理,可以充分利用LVM的snapshot進行備份和複製。不過,在使用LVM卷管理時,有時候也需要直接訪問LVM的LV,從中複製一些文件。
這裏解釋 kpartx 工具,可以實現對塊文件(包括卷管理的LV)到設備文件的映射,這樣就可以使用fdisk和mount命令訪問邏輯捲了。
參考
* Kpartx: a tool for mounting partitions within an image file
* Playing with KVM and LVM on Linux
說明
kpartx 是用來映像任何分區塊設備到設備文件的工具,是Linux multipath-tools 中的一個部分。
使用命令 kpartx -l imagefile 可以產看一個映像文件中的分區,使用 kpartx -a imagefile 命令後,就可以通過 /dev/mapper/loop0pX (其中X是 分區號)來訪問映像。
此外,可以通過 mount /dev/mapper/loop0pX /mnt/ -o loop,ro 來訪問,使用後可以使用 kpartx -d imagefile 來卸載。
對於使用 dd 命令複製的LVM卷(我採用此方法備份KVM虛擬機),也可以使用 kpartx 來映射爲設備文件。
複製邏輯捲到磁盤鏡像
使用virt-manger生成一個磁盤映像文件,然後使用losetup命令迴環掛載
losetup /dev/loop2 /vms/win2k3.img
然後再使用dd命令進行鏡像成功
dd if=/dev/mapper/VGwindows-LVwindows of=/dev/loop2
完成後,先卸載loop設備
losetup -d /dev/loop2
之後,就可以在kvm中使用這個磁盤鏡像了,完全沒有任何問題。
備份的LVM卷掛載和文件複製
以下是將備份的LVM邏輯卷採用 kpartx 映射爲設備文件,然後掛載分區進行文件複製。
kpartx -av /nfs_share/x-box_LV/LVmyinfoserv_opt
add map loop2p1 (253:0): 0 12578832 linear /dev/loop2 63
mount /dev/mapper/loop2p1 /mnt
掛載後可以直接訪問分區中的文件(Ext3文件系統)。
PARTX(8)
PARTX(8)
NAME
partx - telling the kernel about presence and numbering of on-disk partitions.
SYNOPSIS
partx [-a|-d|-l] [--type TYPE] [--nr M-N] [partition] disk
DESCRIPTION
Given a block device (
disk
) and a partition table
type
, try to parse the partition table, and list the con-
tents. Optionally add or remove partitions.
This is not an fdisk - adding and removing partitions is not a change of the disk, but just telling the kernel
about presence and numbering of on-disk partitions.
OPTIONS
-a
add specified partitions or read disk and add all partitions
-d delete specified or all partitions
-l list partitions