近日由于虛擬機下安裝軟件過多,時不時彈出磁盤空間不足的問題。查找了很多資料,都沒有很好的解決辦法。
朋友發來一個鏈接,還是老外有良心。翻譯出來放在這里,根據我的實際需求進行了操作,達到了預期目的。
以防萬一,在操作之前將虛擬機進行了備份。
由于安裝時沒有自己進行分區,磁盤大小也使用了默認的20G。后來發現果然悲劇。
使用df -h命令查看具體使用情況
@ubuntu:~$ df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 19G 17G 1020M 95% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 745M 4.0K 745M 1% /dev tmpfs 151M 1.3M 150M 1% /run none 5.0M 0 5.0M 0% /run/lock none 755M 220K 755M 1% /run/shm none 100M 48K 100M 1% /run/user
使用root權限 fdisk -l查看
在虛擬機的設置——>硬盤——>擴展 選項,選擇需要擴展到的容量,這里我是從20G擴展到40G。
設置完成后發現依然無法使用,而是在擴展分區里。
Disk /dev/sda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000ea50f Device Boot Start End Blocks Id System /dev/sda1 * 2048 39845887 19921920 83 Linux /dev/sda2 39847934 41940991 1046529 5 Extended /dev/sda5 39847936 41940991 1046528 82 Linux swap / Solaris
具體思路是將分區先刪除,然后再重新進行分區。注意,這里使用fdisk -l查看的信息建議記錄下來,后面進行重新分區時會使用到。
使用free -m命令查看
bay@ubuntu:~$ free -m total used free shared buffers cached Mem: 1508 1065 443 5 74 419 -/+ buffers/cache: 572 936 Swap: 1021 0 1021
我們可以看到交換分區的大小,先將交換分區關掉使用命令
root@ubuntu:# swapoff -a root@ubuntu:# free -m total used free shared buffers cached Mem: 1508 1075 433 5 73 419 -/+ buffers/cache: 581 926 Swap: 0 0 0
這時候可以看到swap的分區大小已經為0了。
接下來的步驟就是刪除掉 /dev/sda1 和 /dev/sda2。使用fdisk /dev/sda刪除分區
root@ubuntu:# fdisk /dev/sda Command (m for help): p Disk /dev/sda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000ea50f Device Boot Start End Blocks Id System /dev/sda1 * 2048 39845887 19921920 83 Linux /dev/sda2 39847934 41940991 1046529 5 Extended /dev/sda5 39847936 41940991 1046528 82 Linux swap / Solaris Command (m for help): d Partition number (1-5): 1 Command (m for help): d Partition number (1-5): 2 Command (m for help): p Disk /dev/sda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000ea50f Device Boot Start End Blocks Id System
刪除舊的分區之后,就開始進行創建新分區了,注意這時候讓之前保存的信息就派上用場了。
Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): 1 First sector (2048-83886079, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-83886079, default 83886079): 82869552
注意這是時候可能會有人疑惑,這個大小該如何設置。
這個大小是總的大小減去Swap的大?。?3886080 - 1046528 = 82839552。這里的1046528 就是Swap的大小。
接著將分區的事情做完:
Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (1-4, default 2): 2 First sector (82839553-83886079, default 82839553): Using default value 82839553 Last sector, +sectors or +size{K,M,G} (82839553-83886079, default 83886079): Using default value 83886079 Command (m for help): p Disk /dev/sda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders, total 83886080 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000ea50f Device Boot Start End Blocks Id System /dev/sda1 2048 82839552 41418752+ 83 Linux /dev/sda2 82839553 83886079 523263+ 83 Linux
這個時候分區大小是正確的了,但是ID還是同一個值。在這里我們將交換分區的ID修改為82.
Command (m for help): t Partition number (1-4): 2 Hex code (type L to list codes): 82 Changed system type of partition 2 to 82 (Linux swap / Solaris)
使用w進行保存
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.
將虛擬機進行重啟。
交換分區使用UUID進行掛載。在創建新的分區之后,UUID將會不匹配,在reboot之后將沒有交換分區可以使用。這里有兩種方式進行處理
1)在 /etc/fstab 中使用新的UUID
2)在新的分區上使用舊的UUID。這里使用第二種方法。
查看UUID:
root@ubuntu:/home/bay# awk '/swap/ { print $1 }' /etc/fstab # UUID=990ae69c-2bbe-425f-bb8f-91200f70c9b9 [html] view plain copyroot@ubuntu:# swapoff -a root@ubuntu:# free -m total used free shared buffers cached Mem: 1508 1171 337 6 191 424 -/+ buffers/cache: 555 953 Swap: 0 0 0 root@ubuntu:# dd if=/dev/zero of=/dev/sda2 dd: writing to ‘/dev/sda2': No space left on device 1046528+0 records in 1046527+0 records out 535821824 bytes (536 MB) copied, 1.89975 s, 282 MB/s root@ubuntu:# mkswap -U 990ae69c-2bbe-425f-bb8f-91200f70c9b9 /dev/sda2 Setting up swapspace version 1, size = 523256 KiB no label, UUID=990ae69c-2bbe-425f-bb8f-91200f70c9b9 root@ubuntu:# swapon -a root@ubuntu:# free -m total used free shared buffers cached Mem: 1508 717 790 6 6 164 -/+ buffers/cache: 546 961 Swap: 510 0 510 root@ubuntu:# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 19G 17G 1023M 95% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 745M 12K 745M 1% /dev tmpfs 151M 1.3M 150M 1% /run none 5.0M 0 5.0M 0% /run/lock none 755M 152K 755M 1% /run/shm none 100M 48K 100M 1% /run/user root@ubuntu:# resize2fs /dev/sda1 resize2fs 1.42.9 (4-Feb-2014) Filesystem at /dev/sda1 is mounted on /; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 3 The filesystem on /dev/sda1 is now 10354688 blocks long. root@ubuntu:# df -h Filesystem Size Used Avail Use% Mounted on /dev/sda1 39G 17G 21G 45% / none 4.0K 0 4.0K 0% /sys/fs/cgroup udev 745M 12K 745M 1% /dev tmpfs 151M 1.3M 150M 1% /run none 5.0M 0 5.0M 0% /run/lock none 755M 152K 755M 1% /run/shm none 100M 48K 100M 1% /run/user
dd命令僅僅是保證在分區開始的地方沒有數據。
以上所述是小編給大家介紹的VMware下ubuntu擴展磁盤空間的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對VEVB武林網網站的支持!
新聞熱點
疑難解答
圖片精選