導航:首頁 > 操作系統 > linux磁碟自動掛載

linux磁碟自動掛載

發布時間:2023-02-01 22:35:34

『壹』 linux系統設置U盤自動掛載

    筆者在工作中遇到自動掛載U盤,於是在樹莓派和紅帽系統上研究了一下U盤實現自動掛載。總的來說,Linux gnome/kde窗口環境下有移動存儲的管理程序,可以實現自動掛載移動存儲設備,但是在命令行下 通常需要用mount命令手動掛載USB存儲設備。第二種方法有風險,第三種是設備管理服務udev添加規則實現自動mount,第四種方法則進一步封裝mount添加日誌功能。

    Raspberry Pi中USB設備的自動掛載由基於LXDE的GUI / DE處理,具體來說,由文件管理器PCManFM控制。若要禁用此行為,請打開「文件管理器」,然後從「編輯」菜單中選擇「首選項」。選擇「卷管理」選項卡,取消選中第二個選項「掛載可移動介質...」 ,可以禁用第三個選項「顯示可用選項...」設置,以防止彈出窗口提示可用程序。

    系統開機時會主動讀取/etc/fstab這個文件中的內容,根據文件裡面的配置掛載磁碟。使用檢查UUID: sudo blkid,顯示關於可用塊設備的信息, 查找您的設備(如 / dev / sda1 )並復制其UUID。此方法只限於開機時已經插入U盤了,開機後再插入就不發自動掛載,需要執行sudo mount -a命令。

    在文件/ etc / fstab底部添加:UUID={YOUR-UID}    {/path/to/mount/point}    {file-system-type}    defaults,errors=remount-ro   0  1

  倒數第二是mp備份設置,當其值設置為1時,將允許mp備份程序備份;設置為0時,忽略備份操作。倒數第一是fsck磁碟檢查設置,其值是一個順序,當其值為0時,永遠不檢查;而 / 根目錄分區永遠都為1,其它分區從2開始,數字越小越先檢查。

    修改後保存,關閉,重新啟動設備以檢查或鍵入: sudo mount -a  。mount -a 是自動掛載 /etc/fstab 裡面的東西,會忽略所有已經完成的操作。但是筆者認為在這裡面添加太過於危險,不要輕易操作這個文件,有可能造成系統無法開機。外部設備在插入時掛載,在未插入時忽略,不然無法進入系統,這需要添加 nofail 選項,但是操作這個文件不太方便,有其他剛好的方法。

    文件種有兩種ACTION,add和remove。在U盤插入或者拔出時,自動激活mount和unmount,完成設備自動掛載。

KERNEL!="sd*", GOTO="media_by_label_auto_mount_end"

SUBSYSTEM!="block",GOTO="media_by_label_auto_mount_end"

IMPORT{program}="/sbin/blkid -o udev -p %N"

ENV{ID_FS_TYPE}=="", GOTO="media_by_label_auto_mount_end"

ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"

ENV{ID_FS_LABEL}=="", ENV{dir_name}="Untitled-%k"

ACTION=="add", ENV{mount_options}="relatime,sync"

ACTION=="add", ENV{ID_FS_TYPE}=="vfat", ENV{mount_options}="iocharset=utf8,umask=000"

ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", ENV{mount_options}="iocharset=utf8,umask=000"

ACTION=="add", RUN+="/bin/mkdir -p /media/%E{dir_name}", RUN+="/bin/mount -o $env{mount_options}  /dev/%k /media/%E{dir_name}"

ACTION=="remove", ENV{dir_name}!="", RUN+="/bin/umount -l /media/%E{dir_name}", RUN+="/bin/rmdir /media/%E{dir_name}" 

LABEL="media_by_label_auto_mount_end"

       第三種方法中,mount或者unmount命令在實際運用中是無法記錄日誌的。在生產系統中就需要添加這個插入U盤和拔出U盤的動作,作為審核調查依據。將上面的mount -o或者unmount  -l替換成usbhotplug.sh  mount 和usbhotplug.sh   unmount。

#!/usr/bin/bash

time=`date "+%Y%m%d"`

LOG_FILE="/home/pi/mount-usb-$time.log"

date=`date`

echo $date >> $LOG_FILE

CMD=$1

case $CMD in

    'mount')

        /bin/mkdir -p $4

        echo "/bin/mkdir -p $4" >> $LOG_FILE

        sleep 2

        /bin/mount -o  $2 $3  $4

        echo "/bin/mount -o $2 $3  $4" >> $LOG_FILE

        sync

        echo "----------" >> $LOG_FILE

    ;;

    'umount')

        sync

        /bin/umount -f $2

        echo "/bin/umount $2" >> $LOG_FILE

        sleep 2

        /bin/rmdir $2

        echo "/bin/rmdir $2" >> $LOG_FILE

        echo "----------" >> $LOG_FILE

    ;;

esac

『貳』 linux設置開機自動掛載硬碟

方法/步驟
創建掛載路徑
就是把磁碟分配一個路徑,這個路徑你可以分到任何目錄,不過按照Linux的習慣,都是放在media目錄下,當然這個不限制一定要media,也有同誌喜歡放到Home,方便查找
按Ctrl+Alt+T打開終端,輸入sudo mkdir /media/E
這條命令是創建文件夾,按照Windows的習慣是CDEF,這個隨自己設置
Ubuntu(Linux)開機自動掛載磁碟
獲取需要掛載的分區標識
打開文件管理器,查看分區後面的標識
比如需要開機自動掛載本地磁碟,那麼本地磁碟後面的標識是/dev/sdb5
Ubuntu(Linux)開機自動掛載磁碟
獲取分區類型
在終端輸入sudo blkid
可以看到分區的類型,這里的TYPE需要用到
Ubuntu(Linux)開機自動掛載磁碟
編輯/etc/fstab文件
在終端輸入sudo gedit /etc/fstab
打開fstab文件
Ubuntu(Linux)開機自動掛載磁碟
添加分區
在末行加上
/dev/sdb1 /media/C ntfs defaults 0 0
/dev/sdb5 /media/D ntfs defaults 0 0
這里的sdb對應你的分區,media對應要掛載到的目錄,ntfs是分區的文件類型
Ubuntu(Linux)開機自動掛載磁碟
保存退出
點擊文件右上角的保存,然後關閉
可以在終端輸入reboot重啟,然後發現自動載入了

『叄』 linux下如何掛載硬碟

1.插入新硬碟,啟動Linux伺服器,使用fdisk -l 查看硬碟

#fdisk -l

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes

2.格式化硬碟

#mkfs -t ext4 /dev/sdb

3.掛載硬碟

#mount 硬碟地址 要掛載的地址

#mount /dev/sdb /media/imgs

4.實現系統重啟後自動掛載該分區

#vi /etc/fstab

在最後一行添加

/dev/sdb /media/imgs ext4 defaults 1 2

『肆』 linux磁碟重新掛載

VMware虛擬機中,Linux系統下掛載、卸載新硬碟的方法
裝載:
1、啟動vm,選擇vm->Settings,按向導添加一塊SCSI磁碟。進入Linux系統。
2、 fdisk -l 會看到有一塊新的設置,如果你先前有一塊硬碟(sda1, sda3...),新加的這塊應該是(/dev/sdb)。 (如果添加的第二塊硬碟是IDE硬碟,應該看到hdb,如果是SCSI硬碟,看到的就是應該sdb)
[root@localhost ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda3 14 1044 8281507+ 83 Linux

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdb doesn't contain a valid partition table

3、分區:
[root@localhost ~]# fdisk /dev/sdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

The number of cylinders for this disk is set to 1044.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): m ##在這里按m ,就會輸出幫助;
Command action
a toggle a bootable flag
b edit bsd disklabel
c toggle the dos compatibility flag
d delete a partition ##這是刪除一個分區的動作;
l list known partition types ##:l是列出分區類型,以供我們設置相應分區的類型;
m print this menu
n add a new partition ##添加一個分區;
o create a new empty DOS partition table
p print the partition table ##p列出分區表;
q quit without saving changes ##不保存退出;
s create a new empty Sun disklabel
t change a partition's system id ##t 改變分區類型;
u change display/entry units
v verify the partition table
w write table to disk and exit ##把分區表寫入硬碟並退出;
x extra functionality (experts only) ##擴展應用,專家功能;

Command (m for help): n
Command action
e extended ##擴展分區
p primary partition (1-4) ##選p建主分區
p
Partition number (1-4): 1
First cylinder (1-17849, default 1): ##註:這個就是分區的Start 值;這里最好直接按回車,如果你輸入了一個非默認的數字,會造成空間浪費;
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-17849, default 17849): 8920
Using default value 500
##這個是定義分區大小的,+200M 就是大小為200M ;當然你也可以根據上面提示的單位cylinder的大小來算,然後來指定 End的數值,在fdisk –l命令中可以看到Units = cylinders of 16065 * 512 = 8225280 bytes,這個就是單位cylinder的大小,我這里選的End的數值是8920,正好是總大小的一半,71G左右
##然後再來建一個主分區
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First cylinder (8921-17849, default 8921):8921
Using default value 8921
Last cylinder or +size or +sizeM or +sizeK (8921-17849, default 17849):17849
Using default value 17849
##最後保存並退出,切記,一定要保存,不然不會生效的。
Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
##使用fdisk –l命令來查看磁碟狀況:
[root@localhost ~]# fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda3 14 1044 8281507+ 83 Linux

Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/sdb1 1 8920 71649868+ 83 Linux
/dev/sdb2 8921 17849 71722192+ 83 Linux
##磁碟/dev/sdb已經被劃分為2個分區,每個分區大小大概是71G左右。
##在掛載文件系統之前,需要將/dev/sdb1和/dev/sdb2重新用mkfs -t ext3 命令格式化一下,否則在掛載時會報錯。
4、格式化分區:使用mkfs.ext3 /dev/sdb命令格式化磁碟 註:也可以使用mkfs -t ext3 /dev/sdb命令
[root@localhost ~]# mkfs -t ext3 /dev/sdb1 ##指將該磁碟格式化成ext3文件系統
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1048576 inodes, 2096474 blocks
104823 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2147483648
64 block groups
32768 blocks per group, 32768 fragments per group
16384 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.

補充:掛載
掛載文件系統,目前有兩種方法:
一是通過 mount 來掛載,使用mount掛載系統,一旦系統重啟之後就需要重新掛載。
二是通過/etc/fstab文件來開機自動掛載。
我把/dev/sdb1掛載到/test下
[root@localhost ~]# mkdir /test ## 首先建立掛載的目錄test
(或者[root@localhost ~]# cd /
[root@localhost ~]# mkdir test
)
[root@localhost ~]# df –h ##掛載前的分區
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G 5.8G 576M 92% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 233M 0 233M 0% /dev/shm
[root@localhost ~]# mount /dev/sdb1 /test
[root@localhost ~]# df –h ##掛載後的分區
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G 5.8G 576M 92% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 233M 0 233M 0% /dev/shm
/dev/sdb1 7.9G 147M 7.4G 2% /test
6、通過/etc/fstab文件來開機自動掛載(不然重啟電腦後系統將不會保存之前的掛載操作):
[root@localhost ~]# vi /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
tmpfs /dev/shm tmpfs defaults 0 0
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
/dev/sdb1 /test ext3 defaults 1 1
/dev/sdb2 /test ext3 defaults 1 1
# Beginning of the block added by the VMware software
.host:/ /mnt/hgfs vmhgfs defaults,ttl=5 0 0
# End of the block added by the VMware software
第一欄位:設備名,在這里表示是文件系統; 有時我們把掛載文件系統也說成掛載分區;
第二欄位:文件系統的掛載點;
第三欄位:文件系統類型;
第四欄位:mount 命令的選項,和mount 中的-o 同理;defaults包括這些選項 rw, suid, dev, exec, auto, nouser, async;
第五欄位:表示文件系統是否需要mp 備份,1是需要,0 是不需要;
第六欄位: 是否在系統啟動時,通過fsck磁碟檢測工具來檢查文件系統,1是需要,0是不需要,2是跳過;
卸載:
[root@localhost ~]# umount /dev/sdb1
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup00-LogVol00
6.7G 5.8G 576M 92% /
/dev/sda1 99M 12M 82M 13% /boot
tmpfs 233M 0 233M 0% /dev/shm

補充知識:
1. mount可以用來掛載什麼:
不同的操作系統使用不同的文件系統格式。MS-DOS支持FAT16文件系統,Windows98支持FAT16、FAT32文件系 統,WindowsNT支持FAT16、NTFS文件系統,Windows2000則支持FAT16、FAT32、NTFS三種文件系統格式,現在的xp 可以支持FAT32,NTFS,現在最新版本的windows 7 引入了新的WinFS文件系統。 而 Linux差不多支持所有的文件系統格式,但一般使用ext2或ext3文件系統。很多用戶使用的是windows操作系統,如果想在運行的Linux下 訪問其它文件系統中的資源的話,就要用Linux mount命令來實現。
2. mount使用格式:
mount命令[-參數] [設備名稱] [掛載點]
說明:
[掛載點]必須是一個已經存在的目錄,這個目錄可以不為空,但掛載後這個目錄下以前的內容將不可用,umount以後會恢復正常。
[設備名稱] 可以是一個分區,一個usb設備,光碟機,軟盤,網路共享等。
常見參數說明:
Mount 掛載文件系統使用幫助
參數 說明
掛載指定的設備類型:adfs, affs, autofs, coda, coherent, cramfs,
devpts, efs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix,
msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs,
romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, vfat, xenix, xfs,
xiafs

一般文件類型,可以不需要指定就可以有相同自動檢測(adfs, bfs,
cramfs, ext, ext2, ext3, hfs, hpfs, iso9660, jfs, minix, ntfs,
qnx4, reiserfs, romfs, udf, ufs, vxfs, xfs, xiafs 等文件系統),如
果探測失敗,就將訪問/etc/filesystems ,以指定文件系統探測。說
明:如果清楚文件系統,最好指定具體類型。探測錯誤將帶來災難性
的。
多個文件系統可以用「,」分割開來.
-t vfstype mount -a -t nomsdos,ext
將掛載fstab文件指定所有的文件系統,除了類型為 msdos 和 ext 的
那一些。

『伍』 linux磁碟掛載

linux默認不會識別外部的設備(磁碟),所有我們需要將設備掛載到系統已經存在的目錄下才能進行訪問。這個過程就叫做掛載,使用的命令為mount。

(1)根文件系統是必須最先掛載的
(2)掛載點必須存在
(3)掛載設備和掛載點同一時刻只能掛載一次

3.1 查看文件/etc/fstab,這個文件是掛載的配置文件,配置好掛載信息系統重新後會直接讀取該文件內容進行自動掛載。
命令: cat /etc/fstab

文件內容解釋:
(1)第一列為掛載設備,這里使用的UUID進行掛載,可以通過blkid查詢設備的UUD。
查詢UUID命令: blkid /dev/vda1
(2)第二列內容為掛載的位置,即當前設備下存在的路徑。
(3)第三列為掛在的類型,查詢UUID時會帶有type值即掛載類型。
(4)第四列為掛載參數,defaults是默認值的意思。

(5)第五列為是否備份,0代表不要做mp備份;1代表每天進行np操作;2代表不定日期進行mp操作。
(6)是否進行磁碟檢驗,0代表不檢驗;1代表最早檢驗;2代表1級別檢驗完之後進行檢驗。
3.2編輯fstab文件,可以使用命令: vim /etc/fstab 進入文件編輯,增加需要掛載的磁碟信息即可。
3.2編輯完成後,使用 mount -a 可以完成的文檔在系統掛載

(1)查看系統磁碟掛載信息: df -l
(2)查看伺服器有多少塊磁碟: lsblk
(3)卸載掛載: umount -l /data /data 是磁碟掛載路徑

閱讀全文

與linux磁碟自動掛載相關的資料

熱點內容
逆拓撲排序演算法描述 瀏覽:586
如何遠程鏈接到linux伺服器地址 瀏覽:628
抹茶app支付方式怎麼選 瀏覽:554
獵人寶寶攻擊命令 瀏覽:159
操作系統是編譯原理嗎 瀏覽:646
雲伺服器遷移後 瀏覽:260
excel格式轉換pdf 瀏覽:987
登錄器一般存在哪個文件夾 瀏覽:535
中興光貓機器碼演算法 瀏覽:330
android響應時間測試 瀏覽:940
java編程思想第四版答案 瀏覽:888
如何對nbt編程 瀏覽:885
mscpdf 瀏覽:948
文件夾d盤突然0位元組可用 瀏覽:272
吃火腿腸的解壓場面 瀏覽:339
衛星鍋加密教程 瀏覽:792
php7的特性是什麼 瀏覽:469
編譯類高級語言源代碼運行過程 瀏覽:177
科普中國app怎麼分享 瀏覽:87
51單片機與32單片機比較 瀏覽:422