1. 程式人生 > >學習筆記(11)

學習筆記(11)

學習筆記

加強磁盤管理的學習

1. 對比記憶

mount /dev/sr0 /mnt/cdrom /mnt/cdrom為掛載點

ln -s ../data/f2 /root/f2_link2 /root/f2_link2 為鏈接文件

2.分區以往按柱面劃分,單個柱面大約8M

[root@centos6 ~]# fdisk -l


Disk /dev/sda: 107.4 GB, 107374182400 bytes

255 heads, 63 sectors/track, 13054 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: 0x0008cf29


Device Boot Start End Blocks Id System

/dev/sda1 * 1 128 1024000 83 Linux

Partition 1 does not end on cylinder boundary. #由此可見,Centos6的以柱面來劃分分區的,單個柱面大小約8M

/dev/sda2 128 6502 51200000 83 Linux

/dev/sda3 6502 7777 10240000 83 Linux

/dev/sda4 7777 13055 42392576 5 Extended

/dev/sda5 7777 8032 2048000 82 Linux swap / Solaris

3.最多4個主分區,可以有1個表擴展分區,註意擴展分區的大小。

sdb 8:16 0 20G 0 disk

├─sdb1 8:17 0 2G 0 part

├─sdb2 8:18 0 2G 0 part

├─sdb3 8:19 0 3G 0 part

├─sdb4 8:20 0 1K 0 part

└─sdb5 8:21 0 2G 0 part

4.echo -e 'n\np\n\n\n+2G\nw\n' | fdisk /dev/sda

fdisk /dev/sdc <<EOF

5.dumpe2fs /dev/sda2 centos6中查看塊(存放文件的最小單元)組,包括文件系統的信息, 每個組中都有超級塊的備份

6.tune2fs -l /dev/sda1 查看文件系統信息

tune2fs -l /dev/sda1 (dumpe2fs -h/dev/sda2)

使用dumpe2fs /dev/sda1 會比tune2fs -l /dev/sda1 多出來塊組的信息

7.linux文件系統支持的塊大小 1k 2k 4 k

8.mkfs.ext4 /dev/sdb2 -b 1024 指定塊大小

9.預留空間留給root使用 mkfs.ext4 /dev/sdb2 -b 1024 -m 0.1 0.1倍的block count,可以設置預留空間大小 -m選項

10.一個inode <--> 一個file --> 可能占用多個block塊,一個大文件可能占用多個block塊, inode與file 是一對一關系

11.tune2fs -O has_journal /dev/sda2 可以為ext2 增加日誌功能,增加後變成ext3文件系統

tune2fs -O ^has_journal /dev/sda2 禁用後變回ext2文件系統

tune2fs -l 查看,修改 文件系統 -j (journal) 增加日誌功能,增加後變成ext3文件系統

12.mkfs.ext4 使用卷標 使用-L 設為掛載點目錄相同方便管理

13.blkid -U `grep ....| sed`

blkid -U `grep | cut ...`

14.e2label 修改或顯示卷標

15.findfs LABEL=/dev/sdb 通過卷標查找設備名

16.設備名(分區名) label名 UUID名都可以標識一個設備,但是用UUID標識設備較為穩妥,因為設備名有可能會隨著設備的增加刪除而發生改變

17.fsck 修復時要先umount

18.tune2fs -l /dev/sda1 可以查看磁盤文件系統是否故障,如: Filesystem state: clean 文件系統無故障

Filesystem state: not clean, 文件系統有故障 每個塊組中會有超級塊備份,但不是所有的塊組都有超級塊備份

dd if=/dev/zero of=dev/sdb1 bs=20M count=1 模擬故障20M,再通過 tune2fs -l /dev/sdb1 來查看Filesystem state 狀態

19.e2fsck -f 強制檢測磁盤,沒有-f初步檢測,檢測有可能會不完全,使用-f 選項會全盤檢測,速度慢,檢測之前要先umount

20.fsck 自動調用相關工具,可以檢測xfs文件系統,fsck提示信息可以查看到通過那個具體命令來實現的檢測

21.xfs不兼容ext文件系統

22.掛載後才可以訪問文件,掛載的文件夾就是訪問文件的入口

23.1個掛載點(文件夾)只能掛一個分區,掛載點要使用空文件夾,一個設備可以掛載多個文件夾

24.數據存放在掛載的分區上,但文件夾是存放在屬於它分區上

25.cat /etc/mtab 隨著掛載自動更新 掛載表

26.mount LABEL=/data/sdb2 /data/sdb2

27.mount UUID="e0b2b1fd-38dd-48b4-8e52-9642bb1364b6" /data/sdb2, blkid可以查看UUID,可以使用uuidgen 來生成uuid

28.blkid 查看是否有文件系統

29.mount -r /dev/sdb1 /data/sdb1 只讀方式掛載 默認是讀寫掛載

30.cat /proc/mounts 只能看該文件才可以看見隱藏的掛載也可以看見 mount -n ...(centos6中隱藏看不見 ) 鏈接指向不同

31.掛載目錄 使用-B (--bind) 選項

32.37次掛載觸發檢查fsck

33.tune2fs -C(-c) 次數

34.tune2fs -o acl /dev/sdb1 增加acl功能,重新掛載後生效 去掉使用^

mount -o acl /dev/sdb1 /data/sdb1

mount -o noacl,remount /dev/sdb1 ... 修改掛載選項,在不能使用umount情形下使用

35.mount -o remount,ro /data/sdb1

36.fuser -v /data/sdb1 查看掛載目錄(/data/sdb1不是/dev/sdb1)的使用進程(lsof /data/sdb1)

fuser -km /data/sdb1 強制踢出用戶卸載 (慎用)

37.findmnt /data/sdb1 查看文件夾是否處於掛載狀態 (目錄掛載目錄時可以查看是否被掛載)

findmnt mount_point|device 查看掛載情況

[root@centos7 ~]#findmnt /data/sdb1

TARGET SOURCE FSTYPE OPTIONS

/data/sdb1 /dev/sdb1 ext4 rw,relatime,data=ordered #可以查看到掛載選項,還可以查看到文件系統類型

[root@centos7 ~]#findmnt /dev/sdb1

TARGET SOURCE FSTYPE OPTIONS

/data/sdb1 /dev/sdb1 ext4 rw,relatime,data=ordered


find /home 查看home是否為掛載目錄

[root@centos7 ~]#findmnt /home

[root@centos7 ~]#findmnt /bin

[root@centos7 ~]#findmnt /

TARGET SOURCE FSTYPE OPTIONS

/ /dev/sda2 xfs rw,relatime,attr2,inode64,noquota

38.寫數據的時候先放入buffer緩沖區,在系統不繁忙時在寫入磁盤(異步:默認)

同步會直接寫入磁盤,效率不高,文件有磁盤寫入內存時,是先將數據寫到內存的cache中,而內存中的數據要寫入磁盤中時,是先將數據寫到buffer中,所以在一個磁盤向另外一塊磁盤寫數據的時候 是磁盤1 --> 緩存cache中 --> 緩存buffer中 --> 寫到另外一塊磁盤

39.noatime 讀文件是否更新時間,可以提高性能 mount -o 選項

40.mount選項noexece 不讓執行可執行文件,可以使用bash *.sh 來執行

mount -o remount,noexec ...

41.mknod zero c 1 5 不是-c

dd 可傳入數據,可使用設備文件

mount -o remount, nodev

dd 不可傳入數據,不可使用設備文件

42.所有的文件屬性都是由所在的掛載點的中屬性中

43.vim擁有root權限可以修改所有文件,因為擁有suid權限,使用mount -o nosuid 來禁用

44.mount -o loop 將文件掛載目錄上,文件模擬分區使用

dd if=/dev/zero of=/root/p1 bs=1M count=100

mkfs.ext4 p1

使用blkid p1 可以查看到文件系統,blkid查看不到

mount -o loop /root/p1 /mnt

mount 可以不加loop選項 直接掛載文件

45.losetup -a 可以查看掛載後的/dev/loop0 與文件名的映射關系(centos6 mount中可查看)

46.ls /dev/loop* 最多8個loop設備,可以自己創建多個 mknod /dev/loop8 b 7 8(centos6,centos7 中loop設備無限制)

47.losetup /dev/loop8 p2 p2文件與loop8 建立關系

48.mount /dev/loop8 ..

49.kernel 行 添加 max_loop=100 /boot/grub/grub.conf配置文件,重啟後loop設備數修改

50.分區可掛載 文件夾可掛載 -B(--bind) 文件掛載(-o loop)

51.訪問文件需要通過文件夾,所以通過文件夾掛載

52.命令掛載是臨時掛載,永久掛載修改配置文件(/etc/fstab)

tune2fs -o acl /dev/sdb1 是修改的源數據 ,磁盤上

53.設備名 卷標名 UUID名(最好)均可(/etc/fstab)

UUID 掛載點 文件系統 defaults(ro,nouser) 1(備份時間,1表示一天備份一次,需要結合備份工具使用,不常用,0表示不備份.) 1 檢查文件系統完整性順序1表示為最先檢查,0表示不檢查

54.mount -a 重新掛載/etc/fstab ,有auto選項的可以mount -a 來重讀 default有auto選項

55./etc/fstab文件重要,可考慮備份

56.MBR分區時,單個最大分區是2T,因為使用32位表示扇區數(2**32=4G,刪除的字節數為512B 4G*512G=2048/1024=2T),分區不超過2T,0磁道0扇區的512字節有特殊用途

446字節存儲bootloader,64字節存儲分區表 2字節存儲是否已經劃分分區(55AA)

57.vim /etc/grub.conf(/boot/grub/grub.conf的鏈接文件)

kernel /vmlinuz-2.6.32-696.el6.x86_64 ro root=UUID=b6032312-9cab-4be8-845b-b4a266d3d7c8 rd_NO_LUKS rd_NO_LVM.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 crashkernel=auto KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet max_loop=20

58. 自己記憶的是鏈接文件: /etc/grub.conf 和 /etc/sysconfig/selinux

[root@centos6 dev]# ll /etc/grub.conf

lrwxrwxrwx. 1 root root 22 Mar 27 17:35 /etc/grub.conf -> ../boot/grub/grub.conf

[root@centos6 dev]# vi /boot/gull^C

[root@centos6 dev]# ll /etc/sysconfig/selinux

lrwxrwxrwx. 1 root root 17 Mar 27 17:23 /etc/sysconfig/selinux -> ../selinux/config

59.修改fstab文件不能直接使用mount -a 需要先umount

可以直接mount -o remount /data/sdb2 直接生效修改條目

60.tune2fs -U `uuidgen` /dev/sdb2 修改UUID

61.mount -o rw,remount / 修復狀態時無法寫時執行,UUID如果錯誤(掛載點刪除後不影響系統啟動) 校驗為為0時系統可以啟動但有報錯

非0時則會報錯,系統將無法啟動,輸入root密碼後 是以只讀方式。 所以盡量使用0(最後一位)

62.dd if=dev/zero of=/dev/sdb bs=1 count=512 可以清空分區

partx -d --nr 1-2 /dev/sdb

63.init 1 單用戶,可以防止備份時有人修改數據

64.home 家目錄遷移

1. 備份 /home

2. fdisk 分區

3. mkfs.ext4 -L /home /dev/sdc1 -L 指定卷標

4. mkdir /mnt/home; mount /dev/sdb1 /mnt/home

5. init 1 單用戶(網斷)

6. cp -av /home/* /mnt/home

7. rm -rf /home/*

8. vim /etc/fstab

UUID=xxx /home ext4 defaults 0 0

mount -a

ls /home /mnt/home -l

9. rm -rf /mnt/home umount /mnt/home;

10. init 5

65.文件掛載時永久生效 /etc/fstab中必須使用設備名,不能使用UUID /root/p1 /mnt/p1 ext4 loop 0 0

66.光盤掛載 /dev/sr0 /mnt/cdrom iso9660 defaults 0 0

67.文件夾掛文件夾 /boot /mnt/boot none bind 0 0

68.free -m 命令 內存向磁盤寫使用buffer,磁盤相內存寫使用cache,buffer和cache是內存中分出的兩片區域

內存used 包含buffer cache空間

-/+ used - buffer cache | free + cache buffer

69.有時buffer 和cache中的數據是一樣的,buffer cache 是內存中分配的

70 dd if=dev/zero of=/dev/null bs=2048M count=1 超過1g swap 出現使用

71.增加swap分區,放在最外面0磁道 訪問速度塊

分區選id 為82 分區時指定

mkswap /dev/sdb1 -L swap_sdb1 創建文件系統

r!blkid /dev/sdb1 直接讀取命令輸出至vim /etc/fstab

swapon -a 重新讀取swap 不能使用mount 來讀取swap

swapon -s (讀取的就是cat /proc/swaps)查看swap信息 -1 -2 分區值越大 -1 優先級高, 優先級越高

defaults,pri=100 修改優先級

swapoff /dev/sdb1

swapon -a 生效優先級

72.刪除分區可以使用fdisk 也可以使用dd毀壞分區表512字節 dd命令

73.創建swap分區

1.fdisk /dev/sdb1 t 82

dd if=/dev/zero of=/swapfile bs=1M count=2048

2.mkswap /dev/sdb1 -L swap_sdb1

3.vim /etc/fstab

UUID=xxx swap swap defaults,pri=100 0 0

4.swapon -a

5.swapon -s 查看swap分區信息

[root@centos7 ~]#swapon -s

Filename Type Size Used Priority

/dev/sda3 partition 2047996 1748 -1

6.swapoff /dev/sdb1 禁用 swap

74./dev/cdrom --> sr0 mount /dev/cdrom 通用 ll /dev/cdrom 鏈接

75.eject 彈出光盤,可定位出故障服務器

76.cp /devsr0 /data/centos.iso 制作鏡像iso文件,可用來引導系統

77.mount /data/centos7.iso /mnt/iso

78.dd if=/dev/sr0 of=/data/**.iso

79.mkisofs -r -o etc.iso /etc/

file etc.iso

centos7 不用-o loop centos6 需要使用 -o loop

80.制作iso合集

創建文件夾,將素有鏡像文件拷貝進去

使用mkisofs 該合集不能作為引導系統

81.wiki.centos.org ,搜索mkdvdiso,腳本制作引導合集iso

82.tail /var/log/messages -f U盤識別後有信息

83.拷貝數據至u盤的時候 需要sync一下,否則數據在buffer中未傳輸進去

sync執行3次,防止執行一次不成功

84.文件最小的分配單元是塊

85.dd if=f1 of=f2 會覆蓋否目標文件 bs=1 count=3 skip?

86.dd if=/dev/zero of=/dev/sda bs=1 count=64 skip=446 seek=446

87./dev/urandom 隨機設備 /dev/mem 內存設備 /dev/cdrom 光盤設備

88. raid0 分隔單位 chunk 256 條帶集

raid5 最少3塊 1位校驗

raid6 最少4塊 兩位校驗

89.硬raid只能看見一塊硬盤,軟raid是mdN

90.dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446 只填充分區表的46字節


學習筆記(11)