Ubuntu学习笔记(二)

本文介绍了Ubuntu软件包的不同类型及其存储位置,解释了如何控制软件包的下载和更新目录。此外,还详细讨论了虚拟软件包的概念及使用方法、如何阻止特定软件包升级、APT工具的使用技巧、以及系统分区和扩展硬盘的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

 Ubuntu软件包分为4种:main、restricted、universe(公共的)、multiverse(多元化的)。

 

其中main和universe的软件提供源代码。

 

 

Ubuntu软件包位于Ubuntu镜像站点的目录树中。

 

·    dists/:本目录包含发行版与预发行版的软件包

·    pool/:包含运行于各种软件架构的二进制软件包,生成这些二进制软件包的源码包

·    indices/:维护人员文件和重载文件      

·    project/: 供开发人员使用,这里包含的软件包均处于alpha测试阶段

 

问题:如何控制Ubuntu去哪个目录下载或更新?

 我们从/etc/apt/sources.list中摘一段看看。

debhttp://hk.archive.ubuntu.com/ubuntu/ maverick main restricted

打开站点:hk.archive.ubuntu.com,可以看到上述的四个目录,即:dist/, pool/, indices/和project/。而下载软件一般会去dist/(应该会是首选)或者pool/。

dist/的第一级子目录包含很多发行版的目录,如hardy,Karmic,Lucid和maverick(10.10)。进入maverick-security目录,其中是四个子目录,即main/, multiverse/, restricted/和universe/。我想,上面一条命令的意思就是去main/和restricted/中查找软件吧。

 

发行版

Ubuntu的发行版:

 

Hardy Heron

8.04

Intrepid Ibex

8.10

Jaunty Jackalope

9.04

Karmic Koala

9.10

Lucid Lynx

10.04 LTS (支持3年)

Maverick Meerkat

10.10

 

 

利用chroot可以在不同的终端同时运行不同版本的Ubuntu。问题:如何实现?

 

虚拟软件包

定义:具有相近功能的软件组成。安装其中任意一个就能完成指定的功能。如:exim/exim4/postfix/sendmail就属于一个虚拟软件包mail-transport-agent(邮件传输代理)。

 

利用update-alternatives 指定虚拟软件包中的首选软件。 问题:试一下!

 

如何阻止软件包升级

(step1) dpkg --get-selections \* > selections.txt

(step2) 编辑selections.txt,如:libc6 install     ->    libc6   hold

(step3) dpkg --set-selections < selections.txt

 

或者:

 

echolibc6  hold  | dpkg --set-selections

 

或者:

 

利用dselect。  问题:试一下!

 

APT工具 (the Advanced Packaging Tool)

·               apt-get

·               apt-cache

·               apt-cdrom

 

APT还是dselect和aptitude的后台程序。

 

Ø  下面几条命令的区别。s

 

·         apt-get update

更新源里的软件包信息到本机

·         apt-get upgrade                 

只升级那些有更新版本的软件包,但只获取Depends类型的软件包,忽略 Recommends和Suggests的软件包。

·         apt-get dist-upgrade

对整个系统升级

 

 

 

dselect的用法

内核升级后会出现两个内核,可以用下面的命令去删除老的那个

 

dpkg--purge --force-remove-essential linux-image-2.6.35-22-generic-pae  

创建文件系统的方案

邮件服务器与网页服务器的/home和/var应该要有比较多的空间。

而日志服务器则要让/var和/var/log有足够的空间。

 

<原则>

²  保持一个小的root文件系统(/),将目录树的其余部分分散到其他分区。root文件系统受损的机会与其容量成正比,小型root文件系统比较不容易受损。

²  将/boot文件系统独立于一个小分区,而且该分区的位置一定要在1024-cylinder之前

²  将/var独立出来。给它可容纳日志文件的足够空间,但不宜过多。日志文件轮替机制(rotation)会尽量保持所有文件的大小在合理范围内,并自动删掉过期的日志文件。独立的/var文件系统可避免轮替机制意外失效时,成长过量的日志文件排挤了系统其余部分所需的磁盘空间。

²  将/tmp独立出来。其容量依应用程序实际需求而定,一般而言,它应该要足以容纳所有用户同时活动时所产生出来的全部临时文件。

²  将/usr独立出来。其容量要大到足以应付重编译内核的需求。独立的/usr使得其他工作站可透过read-only NFS共享此文件系统。

²  在多人使用的系统中将/home独立出来。如果用量庞大,应该将它放在一个磁盘阵列子系统。

²  换空间至少是主存储器容量的两倍大。如果主存储器容量不大(少于64MB),则应该让交换空间有三倍或四倍于主存储器的容量。

Linux规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码。以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。因此,Linux 下面每一个硬盘总共最多有 16 个分区。

 

很多时候,如果你使用了ubuntu光盘自带的安装工具分区,会出现很多问题。如果遇到问题过不去,推荐两个办法:

1 在live CD的环境中,在终端下直接用sudo  fdisk /dev/xxx来分区,然后w保存后reboot,之后再进安装工具,手工编辑注册表时它认得的就是你编辑的分区表,不用修改直接下一步即可。 (如何实现)

2 你也可以同样用livecd的fdisk分好区后,用光盘上的livecd installer程序,在命令行下安装。不过这个安装程序只需要你挂载/和swap。那么其他分区怎么办呢?可以先在分好,也可以安装完系统再分。如果将其他分区挂载到希望的目录下?举个例子。如果你想把/  home/user挂载到新的sda8分区下,可以这样做:

首先,将/dev/sda8 mount到 /mnt/sda8中。如果没有这个目录就自己mkdir。

然后,cp -R /home/user/* /mnt/sda8/user,和cp -R /home/user/.* /mnt/sda8/user

最后修改/etc/fstab,增加一行/dev/sda8 /home ext3 defaults 0 2(参数自己确定)即可。

 

1) 扩展硬盘,然后将某个目录挂载过去。

2)  重装系统后,再挂载home/和usr/目录。

3)  安装系统后,如何手工分区。指更细致地分区。

增加一块硬盘的方案

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

增加一块硬盘1.5 G,并把/home/挂过去。

在vmware中添加了一块硬盘后,用fdisk –l查看。

 

root@patrick:~# fdisk -l

 

Disk /dev/sda: 19.3 GB, 19327352832 bytes

255 heads, 63 sectors/track, 2349 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000a2169

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sda1   *           1          16      123904  83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2             16         259     1952768  83  Linux

Partition 2 does not end on cylinder boundary.

/dev/sda3             259        502     1952768   82 Linux swap / Solaris

Partition 3 does not end on cylinder boundary.

/dev/sda4            502        2083    12694529   5  Extended

/dev/sda5            502         989     3905536  83  Linux

/dev/sda6             989        1110      975872  83  Linux

/dev/sda7           1110        2083     7811072  83  Linux

 

Disk /dev/sdb: 1610 MB, 1610612736 bytes

255 heads, 63 sectors/track, 195 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

 

Disk /dev/sdb doesn't contain a valid partition table

 

使用fdisk/dev/sdb创建新的分区

我创建一个大小为1G的ext3分区。

注意指定最后一个柱面时,可以输入分区的大小,前面别忘输入+号,如:+1G。

root@patrick:~# fdisk -l

 

Disk /dev/sda: 19.3 GB, 19327352832 bytes

255 heads, 63 sectors/track, 2349 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000a2169

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sda1   *           1          16      123904  83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2             16         259     1952768  83  Linux

Partition 2 does not end on cylinder boundary.

/dev/sda3            259         502     1952768  82  Linux swap / Solaris

Partition 3 does not end on cylinder boundary.

/dev/sda4            502        2083    12694529   5  Extended

/dev/sda5             502         989    3905536   83  Linux

/dev/sda6            989        1110      975872  83  Linux

/dev/sda7           1110        2083     7811072  83  Linux

 

Disk /dev/sdb: 1610 MB, 1610612736 bytes

255 heads, 63 sectors/track, 195 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x23a64b04

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1              1         132     1060258+ 83  Linux

 

别忘了格式化,使用命令mkfs.ext3/dev/sdb1。

下面把home/挂载(mount)到/dev/sdb1上。

 

Step1) mount /dev/sdb1 /mnt/sdb1     (事先创建目录/mnt/sdb1)

Step2) 这里就有个如何拷贝home/下面所有东西到/mnt/sdb1/中的问题。

# cd /home

#find . -depth -print0 | afio -p -xv -0a /mnt/sdb1

Step3) umount /home

Step4) mount/dev/sdb1 /home

Step5) 修改/etc/fstab,加入:

#/home was remounted on /dev/sdb1

/dev/sdb1      /home           ext3    defaults        0      2

 

注意一个问题,我硬盘在sdb上用剩余空间创建了另一个分区/dev/sdb2。fdisk命令退出时,显示这样的信息。

Disk /dev/sdb: 1610 MB, 1610612736 bytes

255 heads, 63 sectors/track, 195 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x23a64b04

 

   Device Boot      Start         End      Blocks  Id  System

/dev/sdb1              1         132     1060258+ 83  Linux

/dev/sdb2            133         195      506047+ 83  Linux

 

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 usedat

the next reboot or after you run partprobe(8) or kpartx(8)

Syncing disks.

root@patrick:/home/patrick# partprobe

Warning: Unable to open /dev/sr0 read-write (Read-only filesystem).  /dev/sr0 has been openedread-only.

 

这里使用了命令partprobe来刷新硬盘的分区表。

 

/var无法umount。直接挂载/var/log。

Step1) mount /dev/sdb2 /mnt/sdb2

Step2) cd /var/log && find . –depth –print0| afio –p –xv -0a /mnt/sdb2

Step3) mount /dev/sdb2 /var/log

Step4) root@patrick:~# df -Th

Filesystem    Type    Size Used Avail Use% Mounted on

/dev/sda7     ext4    7.4G 2.0G  5.1G  28% /

none      devtmpfs   1001M 240K 1001M   1% /dev

none         tmpfs   1007M    0 1007M   0% /dev/shm

none         tmpfs   1007M  84K 1007M   1% /var/run

none         tmpfs   1007M    0 1007M   0% /var/lock

/dev/sr0   iso9660    628M 628M     0 100% /mnt/cdrom

/dev/sda6     ext4    938M  18M  874M   2% /tmp

/dev/sda1     ext4    118M  27M   85M  24% /boot

/dev/sda2     ext4    1.9G  36M  1.8G   3% /home

/dev/sda5     ext4    3.7G 364M  3.2G  11% /var

/dev/sdb2     ext4    479M  33M  422M   8% /var/log

 

如何验证?

# lsof /dev/sdb2

 

 

 

备份的方式

当然可以先检查一下备份/boot需要多少的磁盘空间。

$ sudo dump –S/boot

备份整个文件系统

1)      $ cd /boot

$ sudo dump -0u –f/mnt/backup/dumpfiles/boot.dump /boot

Level=0: 完整备份

2)      $ sudo dd if=/dev/zero of=./test.img bs=1M count=10

3)      $ sudo dump -1u –f /mnt/backup/dumpfiles/boot.dump.1/boot

Level=1: 差异备份

4)       patrick@patrick:/boot$cat /var/lib/dumpdates

/dev/sda1 0 ThuJul  7 12:04:18 2011 +0800

/dev/sda1 1 ThuJul  7 12:12:25 2011 +0800

开始恢复。

 

1)  查看一下备份文件内的文件

$ cd/mnt/backup/dumpfiles

$ restore –t –f boot.dump

还可以查看dump操作的基本信息,如:何时做的备份、备份的目标和Level。

 

2)还可以比较已备份的文件与现有文件的差异

$ cd /boot

$ mvvmlinuz-2.6.35-22-generic-pae vmlinuz-2.6.35-22-generic-pae.backup

$ patrick@patrick:/boot$restore -C -f /mnt/backup/dumpfiles/boot.dump /boot

Dump   date: Thu Jul  7 12:04:18 2011

Dumped from: theepoch

Level 0 dump of/boot on patrick:/dev/sda1

Label: none

filesys = /boot

restore: unable tostat ./vmlinuz-2.6.35-22-generic-pae: No such file or directory

Some files weremodified!  1 compare errors

3) 恢复备份文件中的文件

$cd /mnt/backup

$ sudo restore –r –fdumpfiles/boot.dump

restore:./lost+found: File exists

$ sudo restore –r –fdumpfiles/boot.dump.1

 

备份单个目录/etc

$ dump -0j -fetc.dump.bz2 /etc

用交互方式恢复部分已备份的文件

$ cd/mnt/backup/etcrestore

$ sudo restore –i –f../dumpfiles/etc.dump.bz2        -- 压缩过的文件照样可以

先把需要解压缩的文件加入解压缩列表,然后键入extract。

查看inode的使用情况

df –i

 

 

 

 

 

 

 

 

 

 

 

软体磁盘阵列

RAID:Redundant Arrays of InexpensiveDisks 容错式廉价磁盘阵列

 

RAID-0  等量模式

在组成RAID-0时,每颗磁碟(Disk A与Disk B)都会先被分隔成小区块(chunk)。当有资料写入RAID时,资料会被先被切割成符合小区块的大小,然后依次一块一块地放置到不同的磁碟中。最终,DiskA和DiskB各存放了一半的数据。

RAID-0 中的资料没有备份。所以RAID-0只要有任意一颗磁碟损毁,在RAID上面的所有资料都会损失而无法读取。

RAID-1 映射模式

同一份资料被完整地保存在两颗磁碟上面。如果是不同容量的磁盘组成RAID-1时,那么总容量将以最小的那颗磁碟为主。

这种模式的写入效率会很差。在使用硬件RAID时,磁碟阵列卡会主动复制一份而不使用系统的IO做分配,效能方面会还可以。如果使用软件RAID,可能效能就不好了。但是,RAID-1的读取效率很好。

RAID-5 效能与资料备份的均衡方案

RAID-5至少需要三颗以上的磁碟才能组成RAID-5。RAID-5的资料写入有点类似RAID-0,不过每个循环的写入过程中,在每个磁碟还加入一个同位检查资料(Parity),这个资料会记录其他磁碟的备份资料,用于当有磁碟损毁时的救援。

每個循環寫入時,都會有部分的同位檢查碼 (parity) 被記錄起來,並且記錄的同位檢查碼每次都記錄在不同的磁碟, 因此,任何一個磁碟損毀時都能夠藉由其他磁碟的檢查碼來重建原本磁碟內的資料喔!不過需要注意的是, 由於有同位檢查碼,因此 RAID 5 的總容量會是整體磁碟數量減一顆。原本的 3 顆磁碟只會剩下 (3-1)=2 顆磁碟的容量。而且當損毀的磁碟數量大於等於兩顆時,這整組RAID 5 的資料就損毀了。 因為 RAID 5 預設僅能支援一顆磁碟的損毀情況。

实验

新增一块硬盘/dev/sdb,然后分成5个区。

 

 

 

 

 

 

   Device Boot      Start         End      Blocks        Id    System

/dev/sdb1             1         783    6289416      5    Extended

/dev/sdb5             1         132    1060227     83    Linux

/dev/sdb6           133         264    1060258+    83    Linux

/dev/sdb7           265         396    1060258+    83    Linux

/dev/sdb8           397         528    1060258+    83    Linux

/dev/sdb9           529         660    1060258+    83    Linux

 

然后建立了一个Level=5的soft RAID。

$ sudo mdadm  - - create - - auto=yes   /dev/md0  - - level=5  - - raid-devices=4

- - spare-devices=1 /dev/sdb{5,6,7,8,9}

$sudo mdadm - - detail  /dev/md0

$ cat /proc/mdstat

Personalities :[raid6] [raid5] [raid4]

md0 : active raid5 sdb8[3] sdb9[4](S) sdb7[2] sdb6[1] sdb5[0]

      3180480 blocks level 5, 64k chunk,algorithm 2 [4/4] [UUUU]

     

unused devices:<none>

 

格式化/dev/md0。

 

$ sudo mkfs –t ext4 /dev/md0

 

$sudo mkdir /mnt/raid

$ sudo mount /dev/md0 /mnt/raid

 

设置一块磁碟为错误的状态。

$ cd /mnt/raid

$ sudo tar –cv –f - /etc /var/log | tar –xv–f –

 

$ sudo mdadm - -manage /dev/md0 --fail/dev/sdb8

 

$ sudo mdadm - -detail /dev/md0

……

Number   Major  Minor   RaidDevice State

       0      8       21        0     active sync   /dev/sdb5

       1      8       22       1      active sync   /dev/sdb6

       2      8       23        2     active sync   /dev/sdb7

       3      8       25        3     active sync   /dev/sdb9

 

 

      4       8       24       -      faulty spare   /dev/sdb8

 

 

/dev/md0重启后不见了(补救方法:sudomdadm --stop /dev/md_d0,然后重新创建一个/dev/md0,数据不会丢失)。需要修改/etc/mdadm/mdadm.conf,加入如下一行。

        

ARRAY /dev/md0UUID=b29e5762:9c51ebc2:3e35b7cb:f33e956d

 

然后编辑/etc/fstab,加入下面一行。

         /dev/md0   /mnt/raid   ext4     defaults      0      2

 

$ sudo umount /dev/md0; sudo mount –a

 

LVM

扩展LVM(逻辑卷)

 

<扩展前的状态>

(1)

patrick@patrick:~$ sudo lvdisplay

  ---Logical volume ---

  LVName                 /dev/vbirdvg/vbirdlv

  VGName                vbirdvg

  LVUUID                 2pR15U-lC2X-gSQN-ZvAk-VfF7-J0lE-n1HuZU

  LVWrite Access           read/write

  LVStatus                available

  #open                  1

  LVSize                  5.56 GiB

 Current LE               356

 Segments                4

 Allocation                inherit

 Read ahead sectors        auto

  -currently set to          256

 Block device              251:0

 

(2)

patrick@patrick:~$ df /mnt/lvm

Filesystem           1K-blocks      Used Available Use% Mounted on

/dev/mapper/vbirdvg-vbirdlv

                       5741020    153316  5296072   3% /mnt/lvm

 

我们看经过如下操作后,这些数值(红色)将如何变化。

 

 

 

 

(step 1) 增加一个分区:/dev/sdc9

 

patrick@patrick:~$ sudo fdisk /dev/sdc

 

patrick@patrick:~$ sudo partprobe

 

(step 2) 建物理卷(PV)

 

patrick@patrick:~$ sudo pvcreate /dev/sdc9

 

patrick@patrick:~$ sudo pvscan

  PV/dev/sdc5   VG vbirdvg         lvm2 [1.39 GiB / 0    free]

  PV/dev/sdc6   VG vbirdvg         lvm2 [1.39 GiB / 0    free]

  PV/dev/sdc7   VG vbirdvg         lvm2 [1.39 GiB / 0    free]

  PV/dev/sdc8   VG vbirdvg         lvm2 [1.39 GiB / 0    free]

  PV/dev/sdc9                      lvm2 [1.01GiB]

 Total: 5 [6.57 GiB] / in use: 4 [5.56 GiB] / in no VG: 1 [1.01 GiB]

 

(step 3) 扩展逻辑组(vg)

patrick@patrick:~$ sudo vgextend vbirdvg/dev/sdc9

 Volume group "vbirdvg" successfully extended

patrick@patrick:~$ sudo vgdisplay

  --- Volume group ---

  VG Name               vbirdvg

  System ID            

  Format                lvm2

  Metadata Areas        5

  Metadata Sequence No  4

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                1

  Open LV               1

  Max PV                0

  Cur PV                5

  Act PV                5

  VGSize               6.56 GiB

  PE Size               16.00 MiB

  Total PE              420

  Alloc PE / Size       356 / 5.56 GiB                                                                -- 356块PE已经分配给了vbirdlv

  Free  PE / Size       64 / 1.00 GiB                                                         -- 还有64块PE是空闲的(Free)

  VG UUID           UDbB4P-HxGz-lsIe-P3c6-nHG0-bS0e-wzha1S

 

 

(step 4) 扩展逻辑卷(lv)

 

patrick@patrick:~$ sudo lvresize -l +64/dev/vbirdvg/vbirdlv

  Extending logical volume vbirdlv to 6.56 GiB

  Logical volume vbirdlvsuccessfully resized

patrick@patrick:~$ sudo vgdisplay

  --- Volume group ---

  VG Name               vbirdvg

  System ID            

  Format                lvm2

  Metadata Areas        5

  Metadata Sequence No  5

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                1

  Open LV               1

  Max PV                0

  Cur PV                5

  Act PV                5

  VG Size               6.56 GiB

  PE Size               16.00 MiB

  Total PE              420

  Alloc PE / Size       420 / 6.56 GiB

  Free  PE / Size       0 / 0  

  VG UUID              UDbB4P-HxGz-lsIe-P3c6-nHG0-bS0e-wzha1S

  

patrick@patrick:~$ sudo lvdisplay

  --- Logical volume ---

  LV Name                /dev/vbirdvg/vbirdlv

  VG Name                vbirdvg

  LV UUID               2pR15U-lC2X-gSQN-ZvAk-VfF7-J0lE-n1HuZU

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                6.56 GiB

  Current LE             420

  Segments               5

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to       256

  Block device           251:0

 

 

patrick@patrick:~$ sudo df /mnt/lvm

Filesystem          1K-blocks      Used Available Use%Mounted on

/dev/mapper/vbirdvg-vbirdlv

                       5741020    153316  5296072   3% /mnt/lvm

 

关键问题是现在文件系统的大小并没有改变,仍然是5.6G。进入下一步。

 

(step 5) 改变文件系统的大小

 

查看一下文件系统的superblock的记录。

patrick@patrick:~$ sudo dumpe2fs/dev/vbirdvg/vbirdlv

……

Filesystem OS type:       Linux

Inode count:              365040

Block count:              1458176

Reserved block count:     72908

Free blocks:              1396926

Free inodes:              363644

First block:              0

Block size:               4096                               -- 这个并不是我们所说的PE

……

 

patrick@patrick:~$ sudo resize2fs /dev/vbirdvg/vbirdlv

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/vbirdvg/vbirdlv is mounted on /mnt/lvm; on-lineresizing required

old desc_blocks = 1, new_desc_blocks = 1

Performing an on-line resize of /dev/vbirdvg/vbirdlv to 1720320 (4k)blocks.

The filesystem on /dev/vbirdvg/vbirdlv is now 1720320 blocks long.

 

patrick@patrick:~$ sudo df /mnt/lvm

Filesystem          1K-blocks      Used Available Use%Mounted on

/dev/mapper/vbirdvg-vbirdlv

                       6773300    154736  6277792   3% /mnt/lvm

 

到这里文件系统的大小才改变。

 

patrick@patrick:/mnt/lvm/etc$ sudo dumpe2fs/dev/vbirdvg/vbirdlv

dumpe2fs 1.41.12 (17-May-2010)

……

Inode count:              429936

Block count:              1720320                               --  之前是1458176

Reserved block count:     85193

Free blocks:              1396926

Free inodes:              363644

First block:              0

Block size:               4096

 

减小逻辑卷(LV)

patrick@patrick:/mnt/lvm/etc$ sudopvdisplay

……

--- Physical volume ---

  PV Name               /dev/sdc6

  VG Name               vbirdvg

  PV Size               1.40 GiB / not usable 11.46 MiB

  Allocatable           yes (but full)

  PE Size               16.00 MiB

  Total PE              89

  Free PE               0

  Allocated PE          89

  PV UUID              dwoPTY-iiwE-VBgP-iCtz-tEPb-9O0I-trhYvM

……

 

我们想把这个分区抽出来。

patrick@patrick:/mnt/lvm/etc$ sudo pvscan

  PV /dev/sdc5   VG vbirdvg  lvm2 [1.39 GiB / 0    free]

  PV /dev/sdc6   VG vbirdvg  lvm2 [1.39 GiB / 0    free]

  PV /dev/sdc7   VG vbirdvg  lvm2 [1.39 GiB / 0    free]

  PV /dev/sdc8   VG vbirdvg  lvm2 [1.39 GiB / 0    free]

  PV /dev/sdc9   VG vbirdvg  lvm2 [1.00 GiB / 0    free]

  Total: 5 [6.56 GiB] / in use: 5[6.56 GiB] / in no VG: 0 [0   ]

 

所以,缩小后的vbirdlv的大小应该是:1.39*3+1=5.17G。就5.1G好了。(反正数据大小远小于5.1G)。保留的大小不能大于5.17G,否则这个分区就抽不出来了。

 

patrick@patrick:/mnt/lvm/etc$ sudoresize2fs /dev/vbirdvg/vbirdlv 5100M

resize2fs 1.41.12 (17-May-2010)

Filesystem at /dev/vbirdvg/vbirdlv is mounted on /mnt/lvm; on-lineresizing required

On-line shrinking from 1720320 to 1305600 not supported.

 

可见,在线时无法改变。

 

patrick@patrick:/mnt$ sudo umount /mnt/lvm

patrick@patrick:/mnt$ sudo resize2fs /dev/vbirdvg/vbirdlv5100M

resize2fs 1.41.12 (17-May-2010)

Please run 'e2fsck -f /dev/vbirdvg/vbirdlv' first.

 

patrick@patrick:/mnt$ sudo e2fsck -f /dev/vbirdvg/vbirdlv

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/vbirdvg/vbirdlv: 1396/429936 files (0.1% non-contiguous),65679/1720320 blocks

 

patrick@patrick:/mnt$ sudo resize2fs /dev/vbirdvg/vbirdlv 5100M

 

patrick@patrick:/mnt$ sudo mount -a

patrick@patrick:/mnt$ df /mnt/lvm

Filesystem          1K-blocks      Used Available Use%Mounted on

/dev/mapper/vbirdvg-vbirdlv

               5140896    153316  4728960   4% /mnt/lvm        -- 之前为:6773300

文件系统的大小确实变小了。

 

但是LV的大小做没有相应的改变。

patrick@patrick:/mnt$ sudo lvdisplay

  --- Logical volume ---

  LV Name                /dev/vbirdvg/vbirdlv

  VG Name                vbirdvg

  LV UUID               2pR15U-lC2X-gSQN-ZvAk-VfF7-J0lE-n1HuZU

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                6.56 GiB              -- 我们要把它变成5.1G

  Current LE             420

  Segments               5

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           251:0

 

第一步:

patrick@patrick:/mnt$ sudo lvresize -l -89 /dev/vbirdvg/vbirdlv

  WARNING: Reducing active andopen logical volume to 5.17 GiB

  THIS MAY DESTROY YOUR DATA(filesystem etc.)

Do you really want to reduce vbirdlv? [y/n]: y

  Reducing logical volume vbirdlvto 5.17 GiB

  Logical volume vbirdlvsuccessfully resized

 

patrick@patrick:/mnt$ sudo lvdisplay

  --- Logical volume ---

  LV Name                /dev/vbirdvg/vbirdlv

  VG Name                vbirdvg

  LV UUID               2pR15U-lC2X-gSQN-ZvAk-VfF7-J0lE-n1HuZU

  LV Write Access        read/write

  LV Status              available

  # open                 1

  LV Size                5.17 GiB

  Current LE             331

  Segments               4

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           251:0

 

第二步:将/dev/sdc6移出VG

 

patrick@patrick:/mnt$ sudo pvdisplay

  --- Physical volume ---

  PV Name               /dev/sdc5

  VG Name               vbirdvg

  PV Size               1.40 GiB / not usable 11.43 MiB

  Allocatable           yes (but full)

  PE Size               16.00 MiB

  Total PE              89

  Free PE               0

  Allocated PE          89

  PV UUID              5m9leM-X0Ge-55BR-ByOV-HEBH-SHoO-wbF5o0

  

  --- Physical volume ---

  PV Name               /dev/sdc6

  VG Name               vbirdvg

  PV Size               1.40 GiB / not usable 11.46 MiB

  Allocatable           yes (but full)

  PE Size               16.00 MiB

  Total PE              89

  Free PE               0

  Allocated PE          89

  PV UUID              dwoPTY-iiwE-VBgP-iCtz-tEPb-9O0I-trhYvM

  

  --- Physical volume ---

  PV Name               /dev/sdc7

  VG Name               vbirdvg

  PV Size               1.40 GiB / not usable 11.46 MiB

  Allocatable           yes (but full)

  PE Size               16.00 MiB

  Total PE              89

  Free PE               0

  Allocated PE          89

  PV UUID              cqXbxX-Zo1D-1Z8N-XD35-G51t-NYWZ-KQIAq6

  

  --- Physical volume ---

  PV Name               /dev/sdc8

  VG Name               vbirdvg

  PV Size               1.40 GiB / not usable 11.46 MiB

  Allocatable           yes

  PE Size               16.00 MiB

  Total PE              89

  Free PE               25

  Allocated PE          64

  PV UUID              Hi3cpG-pps0-9xG5-vJ05-o5k6-v7yg-5u8Ivc

  

  --- Physical volume ---

  PV Name               /dev/sdc9

  VG Name               vbirdvg

  PV Size               1.01 GiB / not usable 11.41 MiB

  Allocatable           yes

  PE Size               16.00 MiB

  Total PE              64

  Free PE               64

  Allocated PE          0

  PV UUID               rjzRfo-sIV0-P9V7-y0lB-zWD8-IFjI-pPseUL

 

从上面的输出可以看出,/dev/sdc8和/dev/sdc9中各有25和64的空闲块(PE)。

试着将/dev/sdc6的PE移动到/dev/sdc8和/dev/sdc9。

patrick@patrick:/mnt$ sudo pvmove /dev/sdc6 /dev/sdc8 /dev/sdc9

 

patrick@patrick:/mnt$ sudo pvdisplay

……

--- Physical volume ---

  PV Name               /dev/sdc6

  VG Name               vbirdvg

  PV Size               1.40 GiB / not usable 11.46 MiB

  Allocatable           yes

  PE Size               16.00 MiB

  Total PE              89

  Free PE               89

  Allocated PE          0

  PV UUID              dwoPTY-iiwE-VBgP-iCtz-tEPb-9O0I-trhYvM

……

--- Physical volume ---

  PV Name               /dev/sdc8

  VG Name               vbirdvg

  PV Size               1.40 GiB / not usable 11.46 MiB

  Allocatable           yes (but full)

  PE Size               16.00 MiB

  Total PE              89

  Free PE               0

  Allocated PE          89

  PV UUID              Hi3cpG-pps0-9xG5-vJ05-o5k6-v7yg-5u8Ivc

  

  --- Physical volume ---

  PV Name               /dev/sdc9

  VG Name               vbirdvg

  PV Size               1.01 GiB / not usable 11.41 MiB

  Allocatable           yes (but full)

  PE Size               16.00 MiB

  Total PE              64

  Free PE               0

  Allocated PE          64

  PV UUID               rjzRfo-sIV0-P9V7-y0lB-zWD8-IFjI-pPseUL

 

patrick@patrick:/mnt$ sudo vgreduce vbirdvg /dev/sdc6

 Removed "/dev/sdc6" from volume group "vbirdvg"

把PV(/dev/sdc6)从VG(vbirdvg)中拿出来。

 

第三步,将PV(/dev/sdc6)删除

 

patrick@patrick:/mnt$ sudo pvremove /dev/sdc6

  Labels on physical volume"/dev/sdc6" successfully wiped

patrick@patrick:/mnt$ sudo pvscan

  PV /dev/sdc5   VG vbirdvg  lvm2 [1.39 GiB / 0    free]

  PV /dev/sdc7   VG vbirdvg  lvm2 [1.39 GiB / 0    free]

  PV /dev/sdc8   VG vbirdvg  lvm2 [1.39 GiB / 0    free]

  PV /dev/sdc9   VG vbirdvg  lvm2 [1.00 GiB / 0    free]

  Total: 4 [5.17 GiB] / in use: 4[5.17 GiB] / in no VG: 0 [0   ]

 

 

 

 

 

 

 

安装Apache2

上次安装apache时,将三个MPM(Multi-Processing Module)都安装上去了。这次我们只安装apache2-mpm-woker。

 

patrick@patrick:/etc/cron.daily$sudo aptitude installapache2

The following NEWpackages will be installed:

  apache2 apache2-mpm-worker{a}apache2-utils{a} apache2.2-bin{a} apache2.2-common{a} libapr1{a} libaprutil1{a}libaprutil1-dbd-sqlite3{a} libaprutil1-ldap{a}

0 packagesupgraded, 9 newly installed, 0 to remove and 90 not upgraded.

Need to get 3,289kBof archives. After unpacking 10.1MB will be used.

Do you want tocontinue? [Y/n/?] y

。。。。。。

 

建立一个虚拟主机

1) 在/etc/apache2/sites-available/中建立一个配置文件,如blog.mytest.com。这个文件定义了DocumentRoot(网站的根目录),还有日志文件的路径。

2) 执行下面的命令

$sudo a2dissite default && sudo a2ensite blog.mytest.com

$sudo /etc/init.d/apache2 restart

3)  在/etc/apache2/sites-enable/中,连接文件自动指向:../sites-available/blog.mytest.com。

patrick@patrick:/etc/apache2/sites-enabled$ls -l

total 0

lrwxrwxrwx 1 root root 342011-07-17 14:54 blog.mytest.com -> ../sites-available/blog.mytest.com

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值