8.2設備文件及磁盤分區

2019獨角獸企業重金招聘Python工程師標準>>> hot3.png

概覽:
設備文件的創建?
??????? 權限??? 設備名 類型? 主設備號 次設備號????
mknod [-m MODE] NAME type [MAJOR MINOR] 創建時,先查看是否存在設備號的沖突
零磁道零扇區是MBR:Master Boot Record
??????????? 主引導記錄
??????????? 512Bytes: 引導啟動OS
??????????????? 前446bytes: 存放程序,bootloader
??????????????? 64bytes: 分區表,每16bytes標記一個分區,一共4個分區(主分區)
??????????????? 2bytes: 55AA, MBR有效性標記?? 標記當前mbr是否有效
fdisk是不支持GPT格式的硬盤分區,parted是可以支持的???????????????
parted [options] [device [command [options...]...]]? 直接跟設備不跟其他會分區
-l, --list? 會列出所有分區信息
??? lists partition layout on all block devices
command???
mklabel label-type
???? Create a new disklabel (partition table) of label-type.? label-type should? be? one? of
???? "bsd", "dvh", "gpt", "loop", "mac", "msdos", "pc98", or "sun".

mkpart part-type [fs-type] start end
???? Make? a? part-type partition with filesystem fs-type (if specified), beginning at start
???? and ending at end (by default in megabytes).? fs-type can be one of? "fat16",? "fat32",
???? "ext2",? "HFS", "linux-swap", "NTFS", "reiserfs", or "ufs".? part-type should be one of
???? "primary", "logical", or "extended".
move partition start end
???? Move? partition? so? that it begins at start and ends at end.? Note: move never changes
???? the minor number.
rm partition
???? Delete partition.
print? Display the partition table.????
# parted /dev/sdb mkpart primary ext4 1 10G????
#parted /dev/sdb rm 1
# parted /dev/sdb print?????????????????????????
磁盤管理:

??? I/O設備:
??????? 磁盤
??????? 網卡

??? 文件:read, write, open, close

??? 設備文件:特殊文件
??????? 只有inode,而沒有數據

??????? 關聯至一個驅動程序,進而跟對應的硬件設備打交道;

??????? /dev: b, c

??????????? 每個設備都有其設備號:
??????????????? 主設備號:用于標記設備類型
??????????????? 次設備號:用于標記同一類型中的不同設備

???? mknod - make block or character special files
???? -m, --mode=MODE
????????????? set file permission bits to MODE, not a=rw - umask
??????? mknod [OPTION]... NAME TYPE [MAJOR MINOR]? 主設備號可以相同,次設備號不能相同
??????? TYPE may be:

?????? b????? create a block (buffered) special file 有緩存

?????? c, u?? create a character (unbuffered) special file 無緩存的

?????? p????? create a FIFO
??????????? 設備文件的命名:由ICANN:互聯網名稱與數字地址分配機構(Internet
???????????? Corporation for Assigned Names and Numbers)
[root@linux_basic tmp]#mknod -m 664 blocktest b 1 20
[root@linux_basic tmp]#ls -l
total 0
brw-rw-r--. 1 root root 1, 20 Jan? 4 07:38 blocktest
[root@linux_basic tmp]#rm blocktest
rm: remove block special file `blocktest'? y
[root@localhost tmp]# mknod test c 1 30
[root@localhost tmp]# ls -l
total 0
lrwxrwxrwx. 1 root root???? 8 Dec? 2 13:10 file1 -> softfile
-rw-r--r--. 1 root root???? 0 Dec? 2 13:09 softfile
crw-r--r--. 1 root root 1, 30 Dec? 2 13:27 test

??? 磁盤設備文件命名:
??????? /dev/hd:
??????????? IDE: 并口接口, 133MB/s
??????? /dev/sd:
??????????? USB: 串行
??????????? SATA: 串行接口,6Gbps/8
??????????? SCSI: 并行,(Small Computer System Interface) 小型計算機系統接口
??????????? SAS:串行,

??????????? rpm:轉數

??????? /dev/sd[a-z]
??????????? 分區:數字
??????????????? /dev/sda1
??????????????? /dev/sda2

??????????????? 分區編號:
??????????????????? 主+擴展分區:1-4
??????????????????? 邏輯分區:5開始

??? 硬盤分區:
??????? 磁道:track
??????????? 扇區:sector

??????? 柱面:cylinder:
??????????? 分區根據柱面劃分,在同一盤片上的兩面磁頭同時讀取,速度快


??????? 零磁道零扇區是MBR:Master Boot Record
??????????? 主引導記錄
??????????? 512Bytes: 引導啟動OS
??????????????? 前446bytes: 存放程序,bootloader
??????????????? 64bytes: 分區表,每16bytes標記一個分區,一共4個分區(主分區)
??????????????? 2bytes: 55AA, MBR有效性標記?? 標記當前mbr是否有效

??????????? 1T: 3主+1擴展(切割1個或多個邏輯分區)
???????????
??????? [root@linux_basic tmp]#fdisk -l | grep -A 3 "^Disk /dev/.*"
??????? Disk /dev/sda: 48.3 GB, 48318382080 bytes
??????? 255 heads(磁頭數), 63 sectors/track每磁道多少扇區, 5874 cylinders(柱面)
??????? Units = cylinders of 16065 * 512 = 8225280 bytes
??????? Sector size (logical/physical): 512 bytes / 512 bytes
??????? --
??????? Disk /dev/mapper/vg_lvm-lv1: 12.9 GB, 12884901888 bytes
??????? 255 heads, 63 sectors/track, 1566 cylinders
??????? Units = cylinders of 16065 * 512 = 8225280 bytes
??????? Sector size (logical/physical): 512 bytes / 512 bytes
??????? --
??????? Disk /dev/mapper/vg_lvm-lv2: 10.7 GB, 10737418240 bytes
??????? 255 heads, 63 sectors/track, 1305 cylinders
??????? Units = cylinders of 16065 * 512 = 8225280 bytes
??????? Sector size (logical/physical): 512 bytes / 512 bytes???

??????? /proc:
??????? [root@linux_basic tmp]#cat /proc/partitions
??????? major minor? #blocks? name
???????
?????????? 8??????? 0?? 47185920 sda
?????????? 8??????? 1???? 204800 sda1
?????????? 8??????? 2?? 10485760 sda2
?????????? 8??????? 3?? 36494336 sda3
???????? 253??????? 0?? 12582912 dm-0
???????? 253??????? 1?? 10485760 dm-1

??? 分區創建:
???? fdisk - Partition table manipulator for Linux
???? 操作Linux分區表
??????? 查看:fdisk -l [DEVICE]...
?? fdisk工具最多可以識別15個分區
??????? 創建分區:fdisk [DEVICE]
??????????? 交互式界面,有許多子命令
??????????????? p: 顯示磁盤分區表
???????????????? p?? print the partition table
??????????????? n: new,新建分區
???????????????? n?? add a new partition
??????????????? d: delete,刪除分區
??????????????? d?? delete a partition
??????????????? t: 修改分區的系統ID
??????????????? t?? change a partition's system id
??????????????? l: 列表出所有已知的系統ID
??????????????? l?? list known partition types
?????????????????? 83? Linux
?????????????????? 82? Linux swap / So
?????????????????? 8e? Linux LVM?
?????????????????? fd? Linux raid auto
??????????????? w: 保存并退出
??????????????? w?? write table to disk and exit
??????????????? q: 不保存退出
??????????????? q?? quit without saving changes
選n后出現???????????????
???? e?? extended
?? p?? primary partition (1-4)

??????????? 對于已經有分區處于使用狀態的磁盤來講,新建分區后需要讓內核重讀其分區表:
??????????????? CentOS 5:
??????????????????? # partprobe [DEVICE]
??????????????? CentOS 6:
??????????????????? partx -a [DEVICE]
??????????????????? partx - telling the kernel about presence and numbering of on-disk partitions.
??????????????????? -a???? add specified partitions or read disk and add all partitions
??????????????????? 讀磁盤新增的分區
??????????????????? kpartx -af? [DEVICE]
??????????????????? kpartx - Create device maps from partition tables
??????????????????? -a???? Add partition mappings
??????????????????? -l???? List partition mappings that would be added -a
??????????????????? -f???? force creation of mappings; overrides ’no_partitions’ feature
????? 查看/proc/partitions,有顯示則創建成功
??????????? 分區創建工具:sfdisk和parted
------------------------------------------------------------------
Command (m for help): n
Command action
?? e?? extended
?? p?? primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-6527, default 1):
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-6527, default 6527): +5G
??????????????????????????? 注意這里設定大小時的格式
Command (m for help): p

Disk /dev/sdb: 53.7 GB, 53687091200 bytes
255 heads, 63 sectors/track, 6527 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

?? Device Boot????? Start???????? End????? Blocks?? Id? System
/dev/sdb1?????????????? 1???????? 654???? 5253223+?? 5? Extended

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@lvm ~]# partx -a /dev/sdb
? Warning: Disk has a valid GPT signature but invalid PMBR.
? Assuming this disk is *not* a GPT disk anymore.
? Use gpt kernel option to override.? Use GNU Parted to correct disk.
BLKPG: Device or resource busy
error adding partition 1
[root@lvm ~]# kpartx -af /dev/sdb
? Warning: Disk has a valid GPT signature but invalid PMBR.
? Assuming this disk is *not* a GPT disk anymore.
? Use gpt kernel option to override.? Use GNU Parted to correct disk.
[root@lvm ~]# cat /proc/partitions
major minor? #blocks? name

?? 8??????? 0?? 52428800 sda
?? 8??????? 1???? 204800 sda1
?? 8??????? 2?? 10485760 sda2
?? 8?????? 16?? 52428800 sdb
?? 8?????? 17????????? 1 sdb1? 說明創建成功了
-------------------------------------------------------------------------------??
死循環的一個簡單腳本
[root@lvm ~]# bash -n hello.sh
[root@lvm ~]# ./hello.sh
Hello:ld
Again? hello:jhfld
Again? hello:n
[root@lvm ~]# cat hello.sh
#!/bin/bash
#
read -p "Hello:" kir
while true;do
if [ "$kir" == 'n' ];then
??? break;
else
??? read -p "Again? hello:" kir
fi
done
------------------------------------------------------------------
??? 練習:寫一個腳本
??????? 1、提示輸入一個對其執行分區的新硬件設備文件;
??????? 2、提醒用戶接下來的操作銷毀所有的數據,你繼續嗎?
??????????? y或yes: 繼續
??????????? n或no:退出
??????????? 其它字符:提醒輸錯了,再來一次;
??????? 3、對磁盤新建分區:
??????????? 主分區1:大小512M,
??????????? 主分區2:大小2G
??????? 4、創建完成后顯示創建的結果;
成功完成及修改次數
----------------------------------------------------------------

[root@lvm shells]# cat disk_part.sh
#!/bin/bash
#
read -p "Input a partition disk device path:" disk
read -p "The following operation will damage the all data on the disk.yes|no(y|n)?" flag

while true;do
?
? if [ "$flag" == 'n' -o "$flag" == 'no' ];then
???? break;
? elif [ "$flag" == 'y' -o "$flag" == 'yes' ];then
echo "n
p
1

+512M
n
p
2

+2G
w"|fdisk $disk > /dev/null
? partx -a $disk
? kpartx -af $disk
? fdisk -l | grep? "$disk"
? read -p "The following operation will damage the all data on the disk.yes|no(y|s)?" flag
? else
???? echo "Input error."
???? read -p "Again input:" flag
?? fi
done

轉載于:https://my.oschina.net/u/1762991/blog/665603

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/284923.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/284923.shtml
英文地址,請注明出處:http://en.pswp.cn/news/284923.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【ArcGIS風暴】ArcGIS求一個矢量圖層中多個圖斑的“四至點”坐標案例教程

如圖所示,為ArcGIS軟件自帶的全球矢量數據,怎樣求取每個大洲(圖斑)的四至坐標(xmin、ymin、xmax、ymax)呢? 參考閱讀:【ArcGIS遇上Python】python批量獲取柵格數據四至(top,bottom,left,right)坐標代碼 文章目錄 1. 矢量數據加載2. 四至計算結果3. 四至計算過程1.…

一個關于導出excel模板的實例

1 首先jsp頁面 點擊模板下載&#xff0c;會自動下載模板&#xff45;&#xff58;&#xff43;&#xff45;&#xff4c;&#xff0c;效果如下 讓我們看源碼&#xff1a; &#xff11; &#xff4a;&#xff53;&#xff50;頁面 <div class"tab-pane" id"p…

騰訊視頻VIP會員,周卡特價9.5元!

今天給大家推薦特價充值騰訊視頻VIP會員的平臺——幻海優品&#xff0c;騰訊視頻在線直充&#xff0c;VIP會員實時生效&#xff01;騰訊視頻VIP會員特價充值周卡&#xff1a;原價12元&#xff0c;特價9.5元月卡&#xff1a;原價30元&#xff0c;特價22元季卡&#xff1a;原價68…

解決安裝SQL Server 2005開發版時,出現“SQL Server 服務無法啟動 ”點擊重試或取消的解決方法

問題描述&#xff1a; 安裝SQL Server 2005開發版時&#xff0c;提示SQL Server服務無法啟動&#xff0c;有關詳細信息&#xff0c;請參閱SQL Server聯機叢書中的主題如何查看SQL Server 2005安裝日志文件和手動啟動SQL Server&#xff0c;如下圖所示。 此時&#xff0c;如果點…

C語言試題196之實現strstr函數功能

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目: 實現strstr函數功能 C 庫函數 char *strstr(const char *haystack, const char *nee…

svnsync實現版本庫的同步備份

svnsync實現版本庫的同步備份 實驗環境&#xff1a;A&#xff0c;172.17.201.243&#xff08;主&#xff09;B&#xff0c;172.17.201.88&#xff08;備&#xff09;項目需求&#xff0c;生產環境要求svn服務器實現熱備機制&#xff0c;于是就想到了svn自帶的svnsync機制&#…

關于數據結構(二)

文章目錄[點擊展開](?)[] 一UI返回功能思路分析實現方法二當前正在CD技能接著上文<<關于數據結構(一)>>&#xff0c;關于數據結構&#xff0c;在實際的開發中或多或少都有涉及到&#xff0c;只是看自己平時沒有積累到。下面是我在項目中的幾個實例&#xff1a; 一…

JDBC 之 事務

1.概念&#xff1a;事務指邏輯上的一組操作&#xff0c;組成這組操作的各個單元&#xff0c;要么全部成功&#xff0c;要么全部不成功。 2.數據庫開啟事務的命令dtl&#xff1a; Start transaction開啟事務 Rollback回滾事務&#xff08;撤銷&#xff09; Commit提交事務 3.JDB…

[轉]后端程序員必備:書寫高質量SQL的30條建議

以下文章來源于撿田螺的小男孩 &#xff0c;作者撿田螺的小男孩 轉載&#xff1a;《后端程序員必備&#xff1a;書寫高質量SQL的30條建議》 前言 本文將結合實例demo&#xff0c;闡述30條有關于優化SQL的建議&#xff0c;多數是實際開發中總結出來的&#xff0c;希望對大家有…

GIS熱詞:AR、VR、MR辨析

AR、VR、MR技術讓我們見識到了科技神奇的同時&#xff0c;也讓真實可感的現實世界和無法觸摸的虛擬世界的聯系更加緊密。 1. AR AR&#xff0c;全稱Augmented Reality&#xff0c;即增強現實技術。這項技術是利用電腦技術將虛擬的信息疊加到真實世界&#xff0c;通過手機、平板…

云原生數據庫是未來數據庫的天下

一、傳統數據庫的發展階段和痛點 1&#xff09;、傳統數據庫的發展階段 ?人工管理階段 20世紀50十年代中期以前&#xff0c;計算機只是用來計算的&#xff0c;那么數據管理就只能純人工. ?文件系統管理階段 20世紀50年代后期到60年代中期&#xff0c;這時硬件方面有了磁盤、磁…

用.NET做DDNS動態域名解析和SSL證書申請

本文主要介紹 IPv6 配置 DDNS 解析和 SSL 證書申請工具的開發歷程和其中的相關知識。工具使用.NET開發&#xff0c;已開源&#xff0c;目前該工具的域名解析只支持阿里云。文中提及或使用的 .NET 開源項目&#xff1a;SangServerTool&#xff08;DDNS,SSL證書申請工具&#xff…

匯編學習(一)

看的是王爽老師的《匯編語言》第三版基礎知識 一.匯編語言的誕生上古時期在匯編語言還未出現的時候&#xff0c;那時的程序員還只能用二進制也就是所謂的機器語言寫代碼&#xff0c;將0和1編成的程序代碼打在紙帶或卡片上&#xff0c;再將紙帶卡片輸入計算機&#xff0c;進行運…

Java 網絡編程1

talnet工具與Socket類 如今單機的程序已經不太能適合用戶的需要&#xff0c;網絡編程變得比以往更加重要。首先需要認識一下talnet工具&#xff0c;可以使用該工具來連接服務器在終端中輸入,可以進入本地的80端口 talnet 127.0.0.1 80 需要我們輸入ip地址和端口號&#xff0c;使…

【GIS風暴】GeoJSON數據格式案例全解

在了解GeoJSON數據之前,先來通過一個網站和一個簡單的代碼案例,看一下GeoJSON的神奇魅力吧! 網站:http://geojson.io 打開上述網站,在左側的代碼區域粘入中國區域GeoJSON代碼,如下所示: 中國地圖: 地名:

mysqldump參數大全

參數 參數說明 --all-databases , -A 導出全部數據庫。 mysqldump -uroot -p --all-databases --all-tablespaces , -Y 導出全部表空間。 mysqldump -uroot -p --all-databases --all-tablespaces --no-tablespaces , -y 不導出任何表空間信息。 mysqldump -uroot -p --a…

[轉]2020年5月程序員工資統計,平均14542元

平均工資 2020年5月全國招收程序員312761人。2020年5月全國程序員平均工資14542元&#xff0c;工資中位數12500 元&#xff0c;其中95%的人的工資介于5250元到35000元。 一線城市工資 2020年5月北京招收軟件工程師24478人。2019年5月北京軟件工程師平均工資19273元&#xff0…

云原生IDE:iVX免費的首個通用無代碼開發平臺

一、iVX簡單介紹 1、iVX是什么東東? iVX 是一個 “零代碼” 的可視化編程語言&#xff0c;擁有方便的 在線集成開發環境 &#xff0c;不需要下載開發環境&#xff0c;打開瀏覽器即可隨時隨地的進行項目編輯&#xff1b;iVX 擁有 “一站式” 的云資源&#xff0c;通過這一套一…

.NET GC工作流程

前言在上文[如何獲取GC的STW時間]一文中&#xff0c;我們聊到了如何通過監聽GC發出的診斷事件來計算STW時間。里面只簡單的介紹了幾種GC事件和它的流程。群里就有小伙伴在問&#xff0c;那么GC事件是什么時候產生的&#xff1f;分別是代表什么含義&#xff1f;那么在本文就通過…

libco協程庫源碼解讀

2019獨角獸企業重金招聘Python工程師標準>>> 協程,又被稱為用戶級線程,是在應用層被調度,可以減少因為調用系統調用而阻塞的線程切換的時間.目前有很多協程的實現,由于微信內部大量使用了其直研的的libco協程庫&#xff0c;所以我選擇了騰訊開源的libco協程庫進行研…