在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Linux磁盤格式化和掛載介紹

阿銘linux ? 來源:阿銘linux ? 作者:阿銘 ? 2022-10-28 09:08 ? 次閱讀

7.3格式化磁盤分區

磁盤分區雖然分好區了,但暫時還不能用,我們還須對每一個分區進行格式化。

所謂格式化,其實就是安裝文件系統,Windows下的文件系統有FAT32和NTFS。前面章節中,阿銘介紹過Rocky 8以XFS作為默認的文件系統,但我們依然可以給它指定ext3或者ext4格式。

7.3.1命令mke2fsmkfs.ext2mkfs.ext3mkfs.ext4mkfs.xfs

當用man命令查詢前4個命令的幫助文檔時,你會發現我們看到的是同一個幫助文檔,這說明這4個命令是一樣的。下面我們以mke2fs命令為例進行介紹。

mke2fs命令常用的選項如下所示。

-b:表示分區時設定每個數據區塊占用的空間大小。目前,每個數據塊支持1024B、2048B以及4096B。

-i:表示設定inode的大小。

-N:表示設定inode的數量。有時默認的inode數不夠用,所以要自定義inode的數量。

-c:表示在格式化前先檢測一下磁盤是否有問題。加上這個選項后,運行速度會非常慢。

-L:表示預設該分區的標簽(label)。

-j:表示建立ext3格式的分區。如果使用mkfs.ext3格式,就不用加這個選項了。

-t:用來指定文件系統的類型,可以是ext2、ext3 ,也可以是ext4。示例命令如下:

# mke2fs -t ext4 /dev/sda5
mke2fs 1.45.6 (20-Mar-2020)
創建含有 256000 個塊(每塊 4k)和 64000 個inode的文件系統
文件系統UUID:15043836-eee8-4d62-81f1-6e6fab5b6304
超級塊的備份存儲于下列塊:
        32768, 98304, 163840, 229376


正在分配組表:完成
正在寫入inode表:完成
創建日志(4096 個塊)完成
寫入超級塊和文件系統賬戶統計信息:已完成

指定文件系統格式為ext4時,命令mke2fs -t ext4 /dev/sdb5等同于mkfs.ext4 /dev/sdb5。然而,mke2fs并不支持把分區格式化成XFS類型,而只能使用mkfs.xfs,示例命令如下:

#mke2fs-txfs/dev/sda6
mke2fs 1.45.6 (20-Mar-2020)


你的mke2fs.conf文件中沒有定義類型 xfs 的文件系統。
正在終止...
[root@aminglinux01 ~]# mkfs.xfs  /dev/sda6
meta-data=/dev/sda6              isize=512    agcount=4, agsize=64000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=4096   blocks=256000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
log      =internal log           bsize=4096   blocks=1566, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

在上例中,你是否注意到“塊大小=4096”或者bsize=4096這項指標呢?這里涉及“塊”的概念。磁盤在格式化的時候,會預先規定好每一個塊的大小,然后再把所有的空間分割成一個一個的小塊。存數據的時候,也是一個塊一個塊地寫入。如果你的磁盤里存儲的都是特別小的文件,比如說1KB或者2KB,阿銘建議你在格式化磁盤時指定塊數值小一點。

ext4文件系統的默認塊大小為4096B(即4KB)。在格式化時,可以指定塊大小為1024B、2048B或者4096B(它們是成倍增加的)。雖然格式化時可以指定塊大小超過4096B,但一旦超過4096B,就不能正常掛載。那么,如何指定塊大小呢?下面阿銘演示一下具體操作方法,如下所示:

# mke2fs -t ext4 -b 8192 /dev/sda5
警告:塊大小 8192 在很多系統中不可用。
mke2fs 1.45.6 (20-Mar-2020)
 /dev/sda5 有一個 ext4 文件系統
        創建于 Wed Oct 26 2128 2022
Proceed anyway? (y,N) y
mke2fs: 8192字節的塊對于系統來說太大(最大為 4096)
Proceed anyway? (y,N) y
警告:8192字節的塊對于系統來說太大(最大為 4096),但仍然強制進行操作
創建含有 128000 個塊(每塊 8k)和 64000 個inode的文件系統
文件系統UUID:eac5dc07-01db-4367-9200-7c3457048fe3
超級塊的備份存儲于下列塊:
        65528


正在分配組表: 完成
正在寫入inode表: 完成
創建日志(4096 個塊)完成
寫入超級塊和文件系統賬戶統計信息: 已完成

重新格式化sdb6時,會提示這個分區已經格式化過

# mkfs.xfs -b size=8192 /dev/sda6 
mkfs.xfs: /dev/sda6 appears to contain an existing filesystem (xfs).
mkfs.xfs: Use the -f option to force overwrite.

加上-f選項即可

# mkfs.xfs -b size=8192 -f /dev/sda6
meta-data=/dev/sda6              isize=512    agcount=4, agsize=32000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=1, sparse=1, rmapbt=0
         =                       reflink=1
data     =                       bsize=8192   blocks=128000, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=8192   ascii-ci=0, ftype=1
log      =internal log           bsize=8192   blocks=1128, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime=noneextsz=8192blocks=0,rtextents=0

通過上面的小試驗可以發現,如果指定塊大小為8192B,會提示塊值設置得太大了,我們可以直接輸入y強制格式化。你還可以嘗試指定其他數字,但需要是1024的指數倍(1024、2048、4096或者8192)。

其中,mkfs.xfs用法有點特殊,你需要注意和mke2fs區分。另外,還可以給分區指定標簽,如下所示:

mke2fs -L TEST -t ext4 /dev/sda5
mke2fs 1.45.6 (20-Mar-2020)
 /dev/sda5 有一個 ext4 文件系統
        創建于 Wed Oct 26 2236 2022
Proceed anyway? (y,N) y
創建含有 256000 個塊(每塊 4k)和 64000 個inode的文件系統
文件系統UUID:7af471e2-da5a-4897-be4e-049c990f2d9c
超級塊的備份存儲于下列塊:
        32768, 98304, 163840, 229376


正在分配組表: 完成
正在寫入inode表: 完成
創建日志(4096 個塊)完成
寫入超級塊和文件系統賬戶統計信息: 已完成

這里我們可以使用-L選項來指定標簽。標簽會在掛載磁盤時使用,也可以寫入配置文件,這個阿銘稍后介紹。

關于格式化的這部分內容,阿銘建議你,除非有需求,否則不需要指定塊大小。也就是說,你只需要記住-t和-L這兩個選項即可。

7.3.2命令e2label

該命令用于查看或修改分區的標簽,它只支持ext格式的文件系統,而不支持XFS文件系統。這個命令阿銘很少使用,你只要了解一下即可。示例命令如下:

# e2label /dev/sda5
TEST
# e2label /dev/sda5 TEST123
# e2label /dev/sda5
TEST123

7.4掛載/卸載磁盤

前面我們講到了磁盤的分區和格式化,那么格式化完成后,如何使用這些磁盤呢?這就涉及掛載磁盤了。格式化后的磁盤其實是一個塊設備文件,類型為b。也許你會想,既然這個塊文件就是那個分區,那么直接在那個文件中寫數據不就可以寫入那個分區了嗎?這當然不行。

在掛載某個分區前,需要先建立一個掛載點,這個掛載點是以目錄的形式出現的。一旦把某個分區掛載到這個掛載點(目錄)下,要再往這個目錄寫數據時,就都會寫到該分區中。所以,在掛載該分區前,掛載點(目錄)下必須是個空目錄。

其實目錄不為空并不影響所掛載分區的使用,但一旦掛載上了,該目錄下以前的東西就看不到了(數據并沒有丟失),除非卸載該分區。

7.4.1命令mount

如果不加任何選項,直接運行mount命令,會顯示如下信息:

# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,size=897764k,nr_inodes=224441,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime)
bpf on /sys/fs/bpf type bpf (rw,nosuid,nodev,noexec,relatime,mode=700)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/rdma type cgroup (rw,nosuid,nodev,noexec,relatime,rdma)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/hugetlb type cgroup (rw,nosuid,nodev,noexec,relatime,hugetlb)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/pids type cgroup (rw,nosuid,nodev,noexec,relatime,pids)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
none on /sys/kernel/tracing type tracefs (rw,relatime)
configfs on /sys/kernel/config type configfs (rw,relatime)
/dev/mapper/rl-root on / type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
mqueue on /dev/mqueue type mqueue (rw,relatime)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,pagesize=2M)
debugfs on /sys/kernel/debug type debugfs (rw,relatime)
systemd-1 on /proc/sys/fs/binfmt_misc type autofs (rw,relatime,fd=43,pgrp=1,timeout=0,minproto=5,maxproto=5,direct,pipe_ino=22907)
/dev/nvme0n1p1 on /boot type xfs (rw,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota)
sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw,relatime)
tmpfs on /run/user/0 type tmpfs (rw,nosuid,nodev,relatime,size=183320k,mode=700)

輸出的信息量有點大,大家先不用關心這些內容的含義。使用這個命令,可以查看當前系統已經掛載的所有分區、分區文件系統的類型、掛載點及一些選項等信息。如果想知道某個已掛載分區的文件系統類型,直接用mount命令查看即可。

而未掛載的分區,怎么看呢,大家可以使用blkid命令查看,后面會講到它。下面我們先建立一個空目錄,然后在目錄里建一個空白文檔。示例命令如下:

# mkdir /newdir
# touch /newdir/newfile.txt
# ls /newdir/
newfile.txt

然后把剛才格式化的/dev/sda5掛載到/newdir上,如下所示:

# mount /dev/sda5 /newdir/
# ls /newdir/
lost+found
# df -h |grep -v tmpfs
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/rl-root   17G  6.6G   11G   39% /
/dev/nvme0n1p1      1014M  194M  821M   20% /boot
/dev/sda5            969M  2.5M  900M    1% /newdir

把/dev/sda5掛載到/newdir后,原來在/newdir下的newfile.txt就看不到了,通過命令df -h命令可以查看剛剛掛載的分區。

我們也可以使用LABEL的方式掛載分區,如下所示:

# umount /newdir/
# df -h |grep -v tmpfs
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/rl-root   17G  6.6G   11G   39% /
/dev/nvme0n1p1      1014M  194M  821M   20% /boot
# mount LABEL=TEST123 /newdir
# df -h |grep -v tmpfs
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/rl-root   17G  6.6G   11G   39% /
/dev/nvme0n1p1      1014M  194M  821M   20% /boot
/dev/sda5            969M  2.5M  900M    1% /newdir

本例中用到了umount命令,這個命令是用來卸載磁盤分區的,阿銘稍后介紹。

mount命令常用的選項有-a、-t和-o。在介紹-a選項前,我們需要先了解一下/etc/fstab這個文件。

7.4.2/etc/fstab配置文件

我們先來查看一下/etc/fstab文件的內容,如下所示:

#cat/etc/fstab
#
# /etc/fstab
# Created by anaconda on Fri Jun  3 1931 2022
#
# 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.
#
# After editing this file, run 'systemctl daemon-reload' to update systemd
# units generated from this file.
#
/dev/mapper/rl-root     /                       xfs     defaults        0 0
UUID=21f78c94-6652-406f-9f3a-57bd1cdc719f /boot                   xfs     defaults        0 0
/dev/mapper/rl-swap     none                    swap    defaults        0 0

這個文件中顯示了系統啟動時需要掛載的各個分區,下面阿銘簡單描述一下各列的含義。

第1列就是分區的標識,可以寫分區的LABEL、分區的UUID(等會阿銘會著重講一下這個概念),也可以寫分區名(比如:/dev/sda1)。

第2列是掛載點,即要掛載到的目錄名。

第3列是分區的格式。

第4列是mount的一些掛載參數。一般情況下,直接寫defaults即可。

第5列的數字表示是否被dump備份。1表示備份,0表示不備份。

第6列的數字表示開機時是否自檢磁盤。1和2都表示檢測,0表示不檢測。自檢時,1比2優先級高,所以先檢測1,再檢測2。如果有多個分區需要開機檢測,就都設置成2,1檢測完后會同時檢測2。在CentOS 7/Rocky 8系統里,所有分區中該列的值都是0。

下面阿銘著重介紹第4列的常用選項。

async/sync:async表示與磁盤和內存不同步。系統每隔一段時間就會把內存數據寫入磁盤中,而sync則會時時同步內存和磁盤中的數據。

auto/noauto:表示開機自動掛載/不自動掛載。

default:表示按照大多數永久文件系統的默認值設置掛載定義,它包含了rw、suid、dev、 exec、auto、nouser和async。

ro:表示按只讀權限掛載。

rw:表示按可讀可寫權限掛載。

exec/noexec:表示允許/不允許可執行文件執行,但千萬不要把根分區掛載為noexec,否則將無法使用系統,甚至連mount命令都無法使用。

user/nouser:表示允許/不允許root外的其他用戶掛載分區。為了安全,請用nouser。

suid/nosuid:表示允許/不允許分區有suid屬性,一般設置nosuid。

usrquota:表示啟動用戶的磁盤配額模式。磁盤配額會針對用戶限定他們使用的磁盤額度。

grquota:表示啟動群組的磁盤配額模式。

學完了/etc/fstab,我們就可以自己修改這個文件,增加一行來掛載新增分區。例如,阿銘增加了這樣一行:

LABEL=TEST123/newdirext4defaults00

然后卸載之前已經掛載的/dev/sda5,如下所示:

# umount /dev/sda5
# df -h |grep -v tmpfs
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/rl-root   17G  6.6G   11G   39% /
/dev/nvme0n1p11014M194M821M20%/boot

使用命令df -h查看,會發現已經成功卸載/dev/sdb5。下面執行命令mount -a:

# mount -a
# df -h |grep -v tmpfs
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/rl-root   17G  6.6G   11G   39% /
/dev/nvme0n1p1      1014M  194M  821M   20% /boot
/dev/sda5            969M  2.5M  900M    1% /newdir

使用命令df -h查看,會發現多出一個文件/dev/sdb5掛載到了/newfir下,這就是mount -a命令執行的結果。這個-a選項會把/etc/fstab中出現的所有磁盤分區掛載上。除了-a選項外,還有兩個常用的選項。

-t選項:用來指定掛載的分區類型,默認不指定,會自動識別。

-o選項:用來指定掛載的分區有哪些特性,即上面/etc/fstab配置文件中第4列的那些。這個選項阿銘經常使用,示例命令如下:

# mkdir /newdir/dir1
#mount-oremount,ro,sync/dev/sda5/newdir
# mkdir /newdir/dir2
mkdir: 無法創建目錄"/newdir/dir2": 只讀文件系統

由于-o選項指定了ro參數,所以該分區只讀了。通過mount命令可以看到,/dev/sda5也有ro參數,示例命令如下:

# mount |grep sda5
/dev/sda5 on /newdir type ext4 (ro,relatime,sync)

下面阿銘重新掛載,讓它恢復讀寫,如下所示:

# mount -o remount  /newdir  #這里可以省略掉磁盤分區,只寫掛載點
# mkdir /newdir/dir2
# ls /newdir/
dir1 dir2  lost+found

7.4.3命令blkid

阿銘在日常的運維工作中遇到過這樣的情況,一臺服務器上新裝了兩塊磁盤:磁盤a(在服務器上顯示為sdc)和磁盤b(在服務器上顯示為sdd)。有一次阿銘把這兩塊磁盤都拔掉了,之后再重新插上,重啟機器,結果磁盤編號被調換了,即磁盤a顯示為sdd,磁盤b顯示為sdc(這是因為阿銘把磁盤插錯了插槽)。

我們知道掛載磁盤是通過/dev/sda1這樣的分區名字來掛載的,如果該分區先前已加入到/etc/fstab中,系統啟動后則會掛載錯分區。那么,怎樣避免這樣的情況發生呢?這就用到了UUID。我們可以通過blkid命令獲取各分區的UUID,如下所示:

# blkid
/dev/sda5: LABEL="TEST123" UUID="7af471e2-da5a-4897-be4e-049c990f2d9c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="3d19a658-05"
/dev/nvme0n1p1: UUID="21f78c94-6652-406f-9f3a-57bd1cdc719f" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="91dd1aed-01"
/dev/nvme0n1p2: UUID="wFTzNH-yNbZ-hP00-mRUH-sILl-nbcq-oAWzt3" TYPE="LVM2_member" PARTUUID="91dd1aed-02"
/dev/sr0: BLOCK_SIZE="2048" UUID="2021-11-14-09-30-59-00" LABEL="Rocky-8-5-x86_64-dvd" TYPE="iso9660" PTUUID="6b8b4567" PTTYPE="dos"
/dev/mapper/rl-root: UUID="cbb1e131-d2a3-4b62-a1fe-b1172e295101" BLOCK_SIZE="512" TYPE="xfs"
/dev/mapper/rl-swap: UUID="c05b4dde-37bf-48d9-b9ee-a51f1c15d027" TYPE="swap"
/dev/sda6: UUID="aa787ecd-eb79-4b52-92fa-e4d594fb3ff8" BLOCK_SIZE="512" TYPE="xfs" PARTUUID="3d19a658-06"
/dev/nvme0n1:PTUUID="91dd1aed"PTTYPE="dos"

這樣可以獲得全部磁盤分區的UUID。如果格式化時指定了LABEL,則該命令也會顯示LABEL值,文件系統的類型也會顯示。當然,這個命令后面也可以指定查詢哪個分區,示例命令如下:

# blkid /dev/sda5
/dev/sda5: LABEL="TEST123" UUID="7af471e2-da5a-4897-be4e-049c990f2d9c" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="3d19a658-05"

獲得UUID后,我們如何使用它呢?用法如下所示:

# umount /newdir
#mountUUID="7af471e2-da5a-4897-be4e-049c990f2d9c"/newdir

UUID也是支持寫入到/etc/fstab中的,示例命令如下:

# tail -1 /etc/fstab
UUID="7af471e2-da5a-4897-be4e-049c990f2d9c" /newdir      ext4   defaults        0 0

如果想讓某個分區在開機后自動掛載,有兩個辦法可以實現:一是在/etc/fstab中添加一行,如上例中那行;二是把掛載命令寫到/etc/rc.d/rc.local文件中去,系統啟動后會執行這個文件中的命令。只要你把想要開機啟動的命令統統寫入到這個文件中(直接放到最后)即可。阿銘經常把掛載的命令放到該文件的最后一行,示例命令如下:

# cat /etc/rc.local
#!/bin/bash
# THIS FILE IS ADDED FOR COMPATIBILITY PURPOSES
#
# It is highly advisable to create own systemd services or udev rules
# to run scripts during boot instead of using this file.
#
# In contrast to previous versions due to parallel execution during boot
# this script will NOT be run after all other services.
#
# Please note that you must run 'chmod +x /etc/rc.d/rc.local' to ensure
# that this script will be executed during boot.


touch /var/lock/subsys/local
mountUUID="7af471e2-da5a-4897-be4e-049c990f2d9c"/newdir

有的朋友可能會遇到這樣的情況,把命令寫入/etc/rc.d/rc.local文件里,卻并沒有開機執行,這很有可能是因為系統并沒有找到那個命令。所以,為了避免此類問題,阿銘建議你,以后寫入到該文件的命令,要使用絕對路徑,比如本例中的mount應該寫成/usr/bin/mount。更改完/etc/rc.d/rc.local文件后,還需要一步操作:

# chmod a+x /etc/rc.d/rc.local

這是因為,在Rocky 8系統,該文件默認沒有執行權限。以上兩種方法任選其一,阿銘介紹第2種方法其實也是告訴你:如何讓一些操作行為隨系統啟動而自動執行。另外,阿銘建議你在掛載磁盤分區時,盡量使用UUID或者LABEL這兩種方法。

7.4.4命令umount

在上面的小試驗中,阿銘多次用到umount命令。這個命令后面可以跟掛載點,也可以跟分區名(如/dev/sda1),但是不可以跟LABEL和UUID。示例命令如下:

# umount /dev/sda5
#mountUUID="7af471e2-da5a-4897-be4e-049c990f2d9c"/newdir
# umount /newdir
#mountUUID="7af471e2-da5a-4897-be4e-049c990f2d9c"/newdir

umount命令的-l選項非常有用。有時候你會遇到不能卸載的情況,如下所示:

# umount /newdir
umount: /newdir:目標忙。
(有些情況下通過lsof(8)或fuser(1)可以找到有關使用該設備的進程的有用信息)

不能卸載是因為當前目錄還在卸載的分區上。解決這個問題的辦法有兩種:一是進入到其他目錄;二是使用umount命令的-l選項,示例命令如下:

# umount -l /newdir
# df -h |grep -v tmpfs
文件系統             容量  已用  可用 已用% 掛載點
/dev/mapper/rl-root   17G  6.6G   11G   39% /
/dev/nvme0n1p11014M194M821M20%/boot

7.5建立一個swap文件增加虛擬內存

安裝系統時我們就接觸了swap命令,它類似于Windows的虛擬內存,分區時一般指定虛擬內存的大小為實際內存的2倍。如果你的實際內存超過4GB,那么劃分8GB給虛擬內存就足夠日常交換了。如果真遇到了虛擬內存不夠用的情況,就必須增加一個虛擬磁盤,因為我們不可能重新給磁盤分區。增加虛擬磁盤的基本思路是:建立swapfile→格式化為swap格式→啟用該虛擬磁盤。

首先,建立swapfile,如下所示:

# dd if=/dev/zero of=/tmp/newdisk bs=1M count=1024
記錄了1024+0 的讀入
記錄了1024+0 的寫出
1073741824字節(1.1 GB)已復制,6.36177 秒,169 MB/秒

dd命令阿銘經常用到,所以請你也要掌握它的使用方法:用if指定源(一般是寫/dev/zero,它是UNIX系統特有的一個文件,它可以源源不斷地提供“0”),of指定目標文件,bs定義塊的大小,count定義塊的數量。bs和count這兩個參數決定了目標文件的大小,即目標文件大小=bs*count。上面的示例中,阿銘用dd命令建立一個大小為1.1GB的文件,下面將它格式化為swap格式,命令如下:

# mkswap -f /tmp/newdisk
mkswap: /tmp/newdisk:不安全的權限 0644,建議使用 0600。
正在設置交換空間版本 1,大小 = 1024 MiB (1073737728  個字節)
無標簽,UUID=df739399-cb11-4a92-b8db-9e94e257b815

文件格式化后,就可以掛載使用了,如下所示:

# free -m
 total        used        free      shared 
buff/cache   available
Mem: 1806         235         293           8        1276        1413
Swap: 4095           0        4095
# swapon /tmp/newdisk

swapon: /tmp/newdisk:不安全的權限 0644,建議使用 0600。 //雖然提示不安全,但實際已經掛載上

# free -m
 total        used        free      shared 
buff/cache   available
Mem: 1806         236         293           8        1276        1412
Swap: 5119           0        5119

前后對比一下swap分區,我們發現多了1024MB的空間。其中,free命令用來查看內存的使用情況,-m選項表示以MB為單位顯示,阿銘還會在后續章節詳細介紹該命令。





審核編輯:劉清

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 磁盤
    +關注

    關注

    1

    文章

    388

    瀏覽量

    25679
  • NTFS
    +關注

    關注

    0

    文章

    12

    瀏覽量

    8717
  • LINUX內核
    +關注

    關注

    1

    文章

    317

    瀏覽量

    22236

原文標題:第7章 Linux磁盤管理 — 磁盤格式化和掛載

文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    通過FATFS文件系統讀寫SD卡創建文件可以了,加入MSC一直顯示一個沒有格式化的U盤盤符,也不能格式化,為什么?

    通過FATFS文件系統讀寫SD卡創建文件可以了,但加入MSC,一直顯示一個沒有格式化的U盤盤符,也不能格式化,這是什么問題導致的
    發表于 03-12 07:20

    磁盤分區工具parted的使用方法

    傳統的MBR分區表格式,僅支持最大四個主分區,而且不可以格式化2TB以上的磁盤,因此,大磁盤更適合使用parted工具進行GPT的分區格式
    的頭像 發表于 03-03 09:39 ?796次閱讀

    VMWare Linux系統磁盤擴容

    當我們在VMware Linux虛擬機安裝軟件的時候,發現磁盤不夠了,可以考慮給磁盤擴容,而不是重建虛擬機。
    的頭像 發表于 02-17 14:01 ?620次閱讀
    VMWare <b class='flag-5'>Linux</b>系統<b class='flag-5'>磁盤</b>擴容

    FB08 1對7 U盤拷貝格式化機——高效數據復制工具

    FB08 1對7 U盤拷貝格式化機,采用臺灣捷美原廠工藝,具備25MB/s的高速拷貝速度和8口同步復制功能,支持加密U盤免解密拷貝及USB 2.0/3.0設備。支持FAT16/FAT32格式化,兼容
    的頭像 發表于 02-08 13:51 ?361次閱讀
    FB08 1對7 U盤拷貝<b class='flag-5'>格式化</b>機——高效數據復制工具

    FB16 1對15 U盤拷貝格式化機——高效數據復制工具

    FB16 1對15 U盤拷貝格式化機,采用臺灣捷美原廠工藝,具備25MB/s高速拷貝速度和16口同步復制功能,支持加密U盤免解密拷貝及USB 2.0/3.0設備。支持FAT16/FAT32格式化
    的頭像 發表于 02-07 17:36 ?367次閱讀
    FB16 1對15 U盤拷貝<b class='flag-5'>格式化</b>機——高效數據復制工具

    EE-347:使用Blackfin處理器將格式化打印到UART終端

    電子發燒友網站提供《EE-347:使用Blackfin處理器將格式化打印到UART終端.pdf》資料免費下載
    發表于 01-07 13:51 ?0次下載
    EE-347:使用Blackfin處理器將<b class='flag-5'>格式化</b>打印到UART終端

    Linux系統掛載exfat格式U盤教程,觸覺智能RK3562開發板演示

    本文介紹Linux系統(Ubuntu/Debian通用)掛載exfat格式U盤的方法,觸覺智能RK3562開發板演示,搭載4核A53處理器,主頻高達2.0GHz;內置獨立1Tops算力
    的頭像 發表于 12-10 10:10 ?638次閱讀
    <b class='flag-5'>Linux</b>系統<b class='flag-5'>掛載</b>exfat<b class='flag-5'>格式</b>U盤教程,觸覺智能RK3562開發板演示

    服務器數據恢復—LINUX系統刪除/格式化的數據恢復可行性分析

    Linux操作系統是世界上流行的操作系統之一,被廣泛用于服務器、個人電腦、移動設備和嵌入式系統。Linux系統下數據被誤刪除或者誤格式化的問題非常普遍。下面北亞企安數據恢復工程師簡單聊一下
    的頭像 發表于 12-06 13:52 ?416次閱讀

    硬盤格式化與硬盤抹除機:企業數據安全的選擇

    探索硬盤抹除機與硬盤格式化之間的差異,了解為何硬盤抹除機是保護企業數據安全和隱私的更好選擇。我們的硬盤抹除機通過Ontrack和SGS認證,適用于多種存儲設備,提供絕對安全的數據清除,防止數據泄露,幫助企業遵守國際隱私法規,建立可信的數字環境
    的頭像 發表于 11-27 11:24 ?580次閱讀
    硬盤<b class='flag-5'>格式化</b>與硬盤抹除機:企業數據安全的選擇

    FB16格式化功能介紹#硬核拆解 #佑華硬盤拷貝機#格式化#自動執行

    格式化
    華佳興科技
    發布于 :2024年11月21日 16:04:30

    Linux根文件系統的掛載過程

    Linux根文件系統(rootfs)是Linux系統中所有其他文件系統和目錄的起點,它是內核啟動時掛載的第一個文件系統。
    的頭像 發表于 10-05 16:50 ?870次閱讀

    全志Linux磁盤操作基礎命令

    fat32類型 [ubuntu@book:~]$ sudo mkfs.fat /dev/sdc1 mkfs.ext2/3/4 格式化文件系統類型為 Linux EXT類型。 [ubuntu@book
    發表于 09-02 10:47

    Linux磁盤IO詳細解析

      在講解磁盤IO前,先簡單說下什么是磁盤磁盤是可以持久存儲的設備,根據存儲介質的不同,常見磁盤可以分為兩類:機械
    的頭像 發表于 08-05 15:49 ?1005次閱讀
    <b class='flag-5'>Linux</b><b class='flag-5'>磁盤</b>IO詳細解析

    格式化數據存儲到char數組的最簡單方法是什么?

    os_printf將文本格式化為 UART 輸出的函數。 將格式化數據存儲到 char 數組的最簡單方法是什么?
    發表于 07-11 08:01

    esp32 sdcard格式化的api沒有找到,為什么?

    esp32 sdcard 格式化的api 沒有找到,可否說明一下
    發表于 06-25 07:45
    主站蜘蛛池模板: 自偷自拍亚洲欧美清纯唯美 | 欧美日韩性大片 | 三级黄色一级视频 | 日韩在线天堂免费观看 | 天天摸日日 | 国产牛牛 | 欧美一区亚洲 | 极品吹潮视频大喷潮tv | 嗯好舒服好爽好快好大 | 五月天亚洲 | 久久天天躁狠狠躁夜夜免费观看 | 日本高清中文字幕在线观穿线视频 | 爽好舒服快给老师 | 四虎永久在线观看视频精品 | 久久香蕉国产线看观看精品yw | 色老成人精品视频在线观看 | 欧美视频在线观在线看 | 午夜美女久久久久爽久久 | 久久99久久精品国产只有 | 午夜美女写真福利写视频 | 午夜欧美精品久久久久久久久 | 日本一区二区视频在线观看 | 最新激情网址 | 黄色永久网站 | 国产精品福利在线观看免费不卡 | 女生扒开尿口让男生舔 | 天天做天天摸 | 97久久天天综合色天天综合色hd | 天天躁夜夜躁狠狠躁躁 | 性欧美视频在线观看 | 夜夜骑夜夜操 | 欧美人与动性行为网站免费 | 国产午夜精品一区二区理论影院 | 性夜黄a爽影免费看 | 夜夜操美女 | 国产成人优优影院 | 操综合网 | 久久精品视频9 | 91网站在线播放 | 免费视频爰爱太爽了 | 伊人久久大香线蕉综合电影 |