擴大VMware虛擬機中linux硬盤空間

爲VMware添加虛擬硬盤

               VMware安裝linux的時候默認分配的空間是4GB,可能會不夠,這個時候可以通過增加一塊虛擬硬盤,將/usr或其他內容拷貝過去解決這個問題:

創建虛擬硬盤
        1、關閉VM中正在運行的虛擬系統;
        2、在虛擬系統名稱上點右鍵-》Virtual Machine Settings;
        3、在Hardware頁點“Add”-》Add a hard disk-》Create a new virtual disk-》SCSI(recommended)-》分配空間大小-》OK;
        4、可以看見Hardware中出現了一塊新的硬盤Hard Disk 2。

對虛擬硬盤進行分區和格式化(轉載自bixuan)
       
[root@cncmail data1]# fdisk -l ## 這裏是查看目前系統上有幾塊硬盤

         Disk /dev/sda: 36.4 GB, 36401479680 bytes
         255 heads, 63 sectors/track, 4425 cylinders
         Units = cylinders of 16065 * 512 = 8225280 bytes

        Device Boot     Start        End     Blocks    Id   System
         /dev/sda1    *          1        255    2048256    83   Linux
         /dev/sda2            256       1530   10241437+   83   Linux
         /dev/sda3           4296       4425    1044225    82   Linux swap
         /dev/sda4           1531       4295   22209862+    f   Win95 Ext'd (LBA)
         /dev/sda5           1531       2805   10241406    83   Linux
         /dev/sda6           2806       4295   11968393+   83   Linux

         Partition table entries are not in disk order

         Disk /dev/sdb: 36.7 GB, 36703918080 bytes ## 這裏發現/dev/sdb,容量36.7G,切未被分區
         255 heads, 63 sectors/track, 4462 cylinders
         Units = cylinders of 16065 * 512 = 8225280 bytes

         Disk /dev/sdc doesn't contain a valid partition table
         [root@linux root]# fdisk /dev/sdb ## 接下去就對/dev/sdb分區進行分區

         The number of cylinders for this disk is set to 4462.
         There is nothing wrong with that, but this is larger than 1024,
         and could in certain setups cause problems with:
         1) software that runs at boot time (e.g., old versions of LILO)
         2) booting and partitioning software from other OSs
            (e.g., DOS FDISK, OS/2 FDISK)

         Command (m for help): m
         Command action
            a    toggle a bootable flag
            b    edit bsd disklabel
            c    toggle the dos compatibility flag
            d    delete a partition
            l    list known partition types
            m    print this menu
            n    add a new partition
            o    create a new empty DOS partition table
            p    print the partition table
            q    quit without saving changes
            s    create a new empty Sun disklabel
            t    change a partition's system id
            u    change display/entry units
            v    verify the partition table
            w    write table to disk and exit
            x    extra functionality (experts only)

         Command (m for help): p      ## 打印出目前該硬盤下的分區列表

         Disk /dev/sdb: 36.7 GB, 36703918080 bytes
         255 heads, 63 sectors/track, 4462 cylinders
         Units = cylinders of 16065 * 512 = 8225280 bytes

            Device Boot     Start        End     Blocks    Id   System

         Command (m for help): n      ## 增加一個分區
         Command action
            e    extended
            p    primary partition (1-4)
            ## 因爲通常選擇主分區,所以這裏打一個p
         p
         Partition number (1-4): 1     ## 這裏因爲是第一個分卻,所以只選擇1,如果是第二個分區,則選擇2,依次類推
         First cylinder (1-4462, default 1): ## 新分區起始的磁盤塊數
         Using default value 1
         Last cylinder or +size or +sizeM or +sizeK (1-4462, default 4462): 如果要分區10G,這裏可以直接輸入:+10240M,因爲這裏要全部使用硬盤空間,則用默認
         Using default value 4462

         Command (m for help): p

         Disk /dev/sdb: 36.7 GB, 36703918080 bytes
         255 heads, 63 sectors/track, 4462 cylinders
         Units = cylinders of 16065 * 512 = 8225280 bytes

            Device Boot     Start        End     Blocks    Id   System
         /dev/sdb1              1       4462   35840983+   83   Linux
## 這裏第一個分區已經分好了,接下去得把這個分區寫入硬盤,用w
         Command (m for help): w
         The partition table has been altered!

         Calling ioctl() to re-read partition table.
         Syncing disks.

         下面的工作就是對該硬盤進行格式,我這裏是格式化成ext3
         [root@linux root]# mkfs.ext3 /dev/sdb1 (這裏原來的命令是:mke2fs -j /dev/sdb1,試了一下不成         功,改了)
         mke2fs 1.32 (09-Nov-2002)
         Filesystem label=
         OS type: Linux
         Block size=4096 (log=2)
         Fragment size=4096 (log=2)
         4480448 inodes, 8960245 blocks
         448012 blocks (5.00%) reserved for the super user
         First data block=0
         274 block groups
         32768 blocks per group, 32768 fragments per group
         16352 inodes per group
         Superblock backups stored on blocks:
                 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
                 4096000, 7962624

         Writing inode tables: done                           
         Creating journal (8192 blocks): done
         Writing superblocks and filesystem accounting information: done

         This filesystem will be automatically checked every 23 mounts or
         180 days, whichever comes first.   Use tune2fs -c or -i to override.

         檢查一下,是否已經格式好
         [root@linux root]# fdisk -l

         Disk /dev/sda: 36.4 GB, 36401479680 bytes
         255 heads, 63 sectors/track, 4425 cylinders
         Units = cylinders of 16065 * 512 = 8225280 bytes

          Device Boot     Start        End     Blocks    Id   System
         /dev/sda1    *          1        255    2048256    83   Linux
         /dev/sda2            256       1530   10241437+   83   Linux
         /dev/sda3           4296       4425    1044225    82   Linux swap
         /dev/sda4           1531       4295   22209862+    f   Win95 Ext'd (LBA)
         /dev/sda5           1531       2805   10241406    83   Linux
         /dev/sda6           2806       4295   11968393+   83   Linux

         Partition table entries are not in disk order

         Disk /dev/sdb: 36.7 GB, 36703918080 bytes
         255 heads, 63 sectors/track, 4462 cylinders
         Units = cylinders of 16065 * 512 = 8225280 bytes

         Device Boot     Start        End     Blocks    Id   System
         /dev/sdb1              1       4462   35840983+   83   Linux

掛載虛擬硬盤
       
分區分好,也格式化好了,下面就是掛載
         我把/dev/sdb1掛載到/data1下
         [root@linux root]# mkdir /data1   ## 首先建立掛載的目錄data1
         [root@linux root]# mount /dev/sdb1 /data1 ##將sdb1掛載到data1  
        
         重啓系統之後,查看是否掛載成功:
         [root@linux data1]# df -h
         文件系統               容量   已用 可用 已用% 掛載點
         /dev/sda1              2.0G   454M   1.4G   25% /
         /dev/sda6               12G    53M    11G    1% /bak
         /dev/sdb1               34G    33M    32G    1% /data1
         none                   250M      0   250M    0% /dev/shm
         /dev/sda2              9.7G   1.5G   7.7G   17% /usr
         /dev/sda5              9.7G   8.6G   559M   95% /var

         這裏看到/dev/sda6               12G    53M    11G    1% /bak
         說明已經掛載成功了。到根目錄“/”下可以查看到這個掛載好的data1。

轉移數據
       
其實一直做到這裏都還只是準備工作,如果根分區下的數據不轉移到這個虛擬硬盤中的話,還是會提示空間不足。下面是將/usr全部轉移到虛擬硬盤中的過程(參考Linux人生的《Linux系統精華之一——掛載》),同樣也可以轉移其他目錄:

        1、將/usr中的全部數據拷貝到data1(可以用mv一個一個拷貝,也可以用tar壓縮之後一次拷貝,具體參見這兩個命令的man)
        2、清空usr目錄:
              # rm -r /usr
              # mkdir /usr
        3、卸載剛纔掛上的虛擬硬盤,重新將它掛載到usr目錄:
              # umount /dev/sdb1 /data1
              # mount /dev/sdb1 /usr
        4、# vi /etc/fstab ## 用vi修改/etc/fstab,使系統啓動就可以自動掛載
         (點擊“i”進入插入模式對文本內容進行修改,改好後點“Esc”,輸入冒號“:”進入命令行模式,輸入wq保存退出,具體操作可以參考vi常用指令)

        在內容中加上一行:
         /dev/sdb1                /usr                     ext3     defaults         1 2

        4、Ok,重新啓動之後,可以查看現在的硬盤使用情況了:
              # df -h
              文件系統               容量   已用 可用 已用% 掛載點
             /dev/sda2              3.6G   1.3G   2.4G   35% /
                 udev                   125M   124K   125M    1% /dev
             /dev/sdb1              4.0G   2.3G   1.6G   60% /usr
              根分區的“已用%”從99%降到了35%,哈哈,大功告成,可以繼續做其他的事情了。不過這次添加的虛擬硬盤還是比較小,完全可以在添加的時候設得大一點的。美中不足。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章