對于linux系統來說,掛載磁盤的方法其實都大同小異,所以本文以centos系統為例,介紹下linux系統磁盤掛載方法,前面大部分內容源于天翼云的論壇。
1.查看磁盤情況
使用命令fdisk -l # 列出全部磁盤信息
[root@qxyw ~]# fdisk -l Disk /dev/xvda: 42.9 GB, 42949672960 bytes255 heads, 63 sectors/track, 5221 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: 0x0008a9a5Device Boot Start End Blocks Id System/dev/xvda1 1 523 4194304 82 Linux swap / Solaris Partition 1 does not end on cylinder boundary./dev/xvda2 * 523 5222 37747712 83 Linux Disk /dev/xvde: 322.1 GB, 322122547200 bytes255 heads, 63 sectors/track, 39162 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
2.創建分區
?fdisk /dev/xvde # 對xvde硬盤進行分區
? n? # 創建一個新分區
? p? # 創建一個主分區(e為擴展分區)
? 1? # 1表示第一個主分區
? 回車? # 從第1柱面開始分區
? 回車? # 表示整個xvde全寫入第1分區(若需要將sdb分為多個分區,此時輸入+分區大小)
? P? # 查看下已創建好的分區
? w? # 保存并退出
[root@qxyw ~]# fdisk /dev/xvde Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x590ca8b1. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) 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 Command action e extended p primary partition (1-4) p Partition number (1-4): 1First cylinder (1-39162, default 1): Using default value 1Last cylinder, +cylinders or +size{K,M,G} (1-39162, default 39162): Using default value 39162Command (m for help): p Disk /dev/xvde: 322.1 GB, 322122547200 bytes255 heads, 63 sectors/track, 39162 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: 0x590ca8b1Device Boot Start End Blocks Id System/dev/xvde1 1 39162 314568733+ 83 Linux Command (m for help): w The partition table has been altered!Calling ioctl() to re-read partition table. Syncing disks.
3.創建分區文件系統并格式化磁盤
# mkfs.ext4 /dev/xvde1 # 將xvde1以ext4格式進行格式化
[root@qxyw ~]# mkfs.ext4 xvde1 mke2fs 1.41.12 (17-May-2010) Could not stat xvde1 --- No such file or directory The device apparently does not exist; did you specify it correctly?[root@qxyw ~]# mkfs.ext4 /dev/xvde1 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 blocks19660800 inodes, 78642183 blocks3932109 blocks (5.00%) reserved for the super user First data block=0Maximum filesystem blocks=4294967296 2400 block groups32768 blocks per group, 32768 fragments per group8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624, 11239424, 20480000, 23887872, 71663616Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 25 mounts or180 days, whichever comes first. Use tune2fs -c or -i to override.
4.在home目錄下面創建文件夾mysql,并且將設備掛載至/home/mysql。
[root@qxyw home]# mount /dev/xvde1 /home/mysql [root@qxyw home]# df -h Filesystem Size Used Avail Use% Mounted on/dev/xvda2 36G 2.4G 32G 7% /tmpfs 3.9G 0 3.9G 0% /dev/shm/dev/xvde1 296G 191M 281G 1% /home/mysql
假如原來文件夾中有文件掛載之后文件會消失并且出現lost+found文件夾,這時不用擔心,可以用umount命令進行取消掛載。
原因是這樣的。
這個牽扯到linux的VFS(虛擬文件系統)機制。登錄以后,你看到的各個目錄,文件都是內核在加載時候構造在內存中的VFS目錄樹,而不是直接看到硬盤上的實際目錄樹。
? ? ?按照我對這篇文章所描述的粗淺理解,當你掛載某個設備到一個VFS掛載點上時(比如/home),系統就把VFS中的這個掛載點/home指向你最后所掛載的那個設備上。那么你現在訪問該掛載點時,就會看到你最后掛載在此處的設備。而之前所掛載的設備依然在那里,只不過掛載點/home已經不再指向之前的設備。你可以把原來的設備卸載以后掛載到一個新的掛載點上來訪問。
5.將磁盤UUID寫入fstab
1)通過blkid獲得磁盤分區的UUID
[root@qxyw ~]# blkid /dev/xvda1: UUID="5546dd0c-ef40-451b-b266-df8ef3a49967" TYPE="swap" /dev/xvda2: UUID="77fc0962-b3cf-400a-8903-0632e077fa09" TYPE="ext3" /dev/xvde1: UUID="1d17945b-c369-42de-85a8-47217d24d3e5" TYPE="ext4"
2)通過vim /etc/fstab在最后一行添加xvde1的磁盤信息
# # /etc/fstab # Created by anaconda on Thu Jan 12 02:47:21 2017# # Accessible filesystems, by reference, are maintained under '/dev/disk'# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info# UUID=77fc0962-b3cf-400a-8903-0632e077fa09 / ext3 defaults 1 1UUID=5546dd0c-ef40-451b-b266-df8ef3a49967 swap swap defaults 0 0tmpfs /dev/shm tmpfs defaults 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 UUID=d17945b-c369-42de-85a8-47217d24d3e5 /home/mysql ext4 defaults 0 0
6.將/var/lib/mysql/下的內容轉移至/home/mysql/,并且在/var/lib/下創建mysql的鏈接,實際目錄其實為/home/mysql
[root@qxyw /]# cd home[root@qxyw home]# mkdir mysql [root@qxyw home]# mv /var/lib/mysql/* /home/mysql[root@qxyw home]# ln /home/mysql /var/lib/mysql
7.驗證一下,通過df命令查看磁盤的使用情況。然后進入mysql命令,創建數據庫test1…,執行之后會在/home/mysql/文件夾下出現數據庫test1,另外使用df命令查看磁盤使用情況。會發現/dev/xvde1使用量在增長。
[root@qxyw mysql]# df Filesystem 1K-blocks Used Available Use% Mounted on/dev/xvda2 37155392 2417608 32850400 7% /tmpfs 4018012 0 4018012 0% /dev/shm/dev/xvde1 309633052 217092 293687524 1% /home/mysql
?