Linux 基礎知識(四)
阿新 • • 發佈:2018-12-29
GPT是什麼?
GUID磁碟分割槽表(GUID Partition Table,縮寫:GPT)其含義為“全域性唯一標識磁碟分割槽表”,是一個實體硬碟的分割槽表的結構佈局的標準。它是可擴充套件韌體介面(EFI)標準(被Intel用於替代個人計算機的BIOS)的一部分,被用於替代BIOS系統中的一64bits來儲存邏輯塊地址和大小資訊的主開機紀錄(MBR)分割槽表
GPT有哪些功能?
- 在MBR硬碟中,分割槽資訊直接儲存於主引導記錄(MBR)中(主引導記錄中還儲存著系統的載入程式)。但在GPT硬碟中,分割槽表的位置資訊儲存在GPT頭中。但出於相容性考慮,硬碟的第一個扇區仍然用作MBR,之後才是GPT頭。
- 跟現代的MBR一樣,GPT也使用邏輯區塊位址(LBA)取代了早期的CHS定址方式。傳統MBR資訊儲存於LBA 0,GPT頭儲存於LBA 1,接下來才是分割槽表本身。64位Windows作業系統使用16,384位元組(或32扇區)作為GPT分割槽表,接下來的LBA 34是硬碟上第一個分割槽的開始。
- 蘋果公司曾經警告說:“不要假定所有裝置的塊大小都是512位元組。”一些現代的儲存裝置如固態硬碟可能使用1024位元組的塊,一些磁光碟(MO)可能使用2048位元組的扇區(但是磁光碟通常是不進行分割槽的)。一些硬碟生產商在計劃生產4096位元組一個扇區的硬碟,但截至2010年初,這種新硬碟使用韌體對作業系統偽裝成512位元組一個扇區。
- 使用英特爾架構的蘋果機也使用GPT。
- 為了減少分割槽表損壞的風險,GPT在硬碟最後儲存了一份分割槽表的副本
Parted用法個常用選項:
用法:parted [選項]… [裝置 [ 命令 [引數]… ]… ]
將帶有引數的命令用於裝置。如果沒有出現命令,則以互動模式執行。
幫助選項:
-h,--help 顯示此幫助資訊
-l , --list 列出所有裝置的分割槽資訊
-I , --interactive 在必要是,提示使用者
-s, --script 從不提示使用者
-v , --version 顯示版本
建立一個10G分割槽,並格式為ext4檔案系統
- 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA,預設掛載屬性包含acl;
- 掛載至/data/mydata目錄,要求掛載時禁止程式自動執行,且不更新檔案的訪問時間戳;
- 可開機自動掛載
建立分割槽
fdisk /dev/sdc
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):
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +10G
Partition 1 of type Linux and of size 10 GiB is set
Command (m for help): w
The partition table has been altered!
重讀磁碟分割槽表
kpartx -af /dev/sdc
顯示分割槽
fdisk -l /dev/sdc
Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 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 label type: dos
Disk identifier: 0xb5878e08
Device Boot Start End Blocks Id System
/dev/sdc1 2048 20973567 10485760 83 Linux
建立檔案系統
方法一
mke2fs -t ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1
方法二
mkfs.ext4 -b 2048 -L MYDATA -m 2 /dev/sdb1
建立掛載目錄
mkdir -pv /data/mydaa
配置自動掛載
vim /etc/fstab
/dev/sdb1 /data/mydata ext4 defaults,noexec,noatime 0 0
建立一個大小為1G的swap分割槽,並啟用。
建立分割槽
fdisk /dev/sdc
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2):
First sector (20973568-41943039, default 20973568):
Using default value 20973568
Last sector, +sectors or +size{K,M,G} (20973568-41943039, default 41943039): +1G
Partition 2 of type Linux and of size 1 GiB is set
Command (m for help): t
Partition number (1,2, default 2):
Hex code (type L to list all codes): 82
Changed type of partition 'Linux' to 'Linux swap / Solaris'
Command (m for help): p
Disk /dev/sdc: 21.5 GB, 21474836480 bytes, 41943040 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 label type: dos
Disk identifier: 0xb5878e08
Device Boot Start End Blocks Id System
/dev/sdc1 2048 20973567 10485760 83 Linux
/dev/sdc2 20973568 23070719 1048576 82 Linux swap / Solaris
Command (m for help): w
The partition table has been altered!
重讀磁碟分割槽表
kpartx -af /dev/sdc
建立交換分割槽
mkswap /dev/sdb2
建立自動掛載
vim /etc/fstab
/dev/sdb2 swap swap defaults 0 0
顯示交換分割槽
swapon --show
方法二
dd if=/dev/zero of=/swapfile bs=1G count=1
chmod 600 /swapfile
mkswap /swapfile
vim /etc/fstab
/swapfile swap swap defaults 0 0
編寫指令碼計算/etc/passwd檔案中的第10個使用者和第20個使用者的id號之和
#!/bin/bash
#
id1=$(head -10 /etc/passwd | tail -1 | awk -F : '{print $3}')
id2=$(head -20 /etc/passwd | tail -1 | awk -F : '{print $3}')
echo sum=$[$id1+$id2]
當前主機名稱儲存至hostName變數中;主機名如果為空,或者為localhost.localdomain,則將其設定為www.magedu.com
hostName=$(hostname)
[ -z "$hostName" -o "$hostName" == "localhost.localdomain" -o "$hostName" == "localhost" ] && hostname www.magedu.com
編寫指令碼,通過命令列引數給定一個使用者名稱,判斷其ID號是偶數還是奇數
#!/bin/bash
#
if [ $[ $(id -u $1)%2 ] -eq 0 ]
then
echo $1 ID is Even numbers
else
echo $1 ID is Odd numbers
fi
方法二
#!/bin/bash
#
[ $[ $(id -u $1)%2 ] -eq 0 ] && echo $1 ID is Even numbers || echo $1 ID is Odd numbers