<s id="xcxsa"></s><rp id="xcxsa"></rp>

  • <span id="xcxsa"><pre id="xcxsa"><rt id="xcxsa"></rt></pre></span>
    <dd id="xcxsa"></dd><tbody id="xcxsa"></tbody>
        首頁 運維干貨Linux中卸載提示設備正忙怎么辦?

        Linux中卸載提示設備正忙怎么辦?

        運維派隸屬馬哥教育旗下專業運維社區,是國內成立最早的IT運維技術社區,歡迎關注公眾號:yunweipai
        領取學習更多免費Linux云計算、Python、Docker、K8s教程關注公眾號:馬哥linux運維

        執行NFS掛載時,你可能會看到設備繁忙狀態。在這種情況下,你必須以適當的方式強制卸載。

        在這種情況下,我們創建了 /var/linoxide 安裝目錄。如果嘗試卸載遠程分區,則會收到錯誤消息。

        # df -h  
        Filesystem Size Used Avail Use% Mounted on  
        /dev/vda1  20G 3G 18G 7% /  
        devtmpfs  236M 0 236M 0% /dev  
        tmpfs     245M 0 245M 0% /dev/shm  
        tmpfs     245M 4M 237M 4% /run  
        tmpfs     245M 0 245M 0% /sys/fs/cgroup  
        tmpfs      49M 0 49M 0% /run/user/0  
        1241:/var/linoxide 20G 3G 18G 7% /mnt/nfs/linoxide_srv  
        1241:/home 20G 3G 18G 7% /mnt/nfs/home_srv  
        

        在最后兩行中,已安裝的文件夾顯示在客戶端上。以下示例顯示由于設備繁忙而導致卸載失敗

        # umount /mnt/nfs/linoxide_srv/  
        umount.nfs4: /mnt/nfs/linoxide_srv: device is busy  
        

        使用lsof

        lsof(列出打開的文件)命令顯示特定文件系統,目錄或設備上所有打開的文件及其關聯進程的列表。默認情況下,它列出所有當前打開的文件,共享庫和目錄,并提供有關每個文件的盡可能多的信息??梢允褂霉艿缹敵鲞M行過濾,以提供諸如PID,USER等信息。

        # lsof /mnt/nfs/linoxide_srv/  
        COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME  
        bash 24098 root cwd DIR 253,1 4096 519062 /mnt/nfs/linoxide_srv  
        bash 24125 root cwd DIR 253,1 4096 519062 /mnt/nfs/linoxide_srv  
        vim 24144 linoxide cwd DIR 253,1 4096 519062 /mnt/nfs/linoxide_srv  
        

        存在使用已安裝文件夾的進程的PID,并顯示正在執行的命令和執行該命令的用戶。你可以殺死正在使用的進程,但可以處理執行的命令。你可以看到vim命令。這意味著linoxide用戶正在編輯文件。因此,如果你殺死進程,他的進度將會丟失。讓我們看一下結果,假設你已通知他

        # lsof /mnt/nfs/linoxide_srv/  
        COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME  
        bash 24098 root cwd DIR 253,1 4096 519062 /mnt/nfs/linoxide_srv  
        bash 24125 root cwd DIR 253,1 4096 519062 /mnt/nfs/linoxide_srv  
        

        看來用戶已停止進行更改,但仍在運行bash命令,但我不知道為什么。你可以使用kill命令殺死兩個進程。不要錯過被殺死的進程的PID。

        殺死第一個bash進程

        # kill -9 24098
        

        你可以檢查結果

        # lsof /mnt/nfs/linoxide_srv/  
        COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME  
        bash 24125 root cwd DIR 253,1 4096 519062 /mnt/nfs/linoxide_srv  
        

        你可以看到一個進程被殺死了

        # kill -9 24125
        

        讓我們回顧第二個過程

        # lsof /mnt/nfs/linoxide_srv/ 
        

        讓我們卸載文件夾

        # umount /mnt/nfs/linoxide_srv/  
        umount: /mnt/nfs/linoxide_srv/: not mounted  
        

        殺進程時,似乎自動卸載了該文件夾,但讓我們用df命令檢查一下

        # df -h  
        Filesystem Size Used Avail Use% Mounted on  
        /dev/vda1 20G 3G 18G 7% /  
        devtmpfs  236M 0 236M 0% /dev  
        tmpfs     245M 0 245M 0% /dev/shm  
        tmpfs     245M 3M 237M 4% /run  
        tmpfs     245M 0 245M 0% /sys/fs/cgroup  
        tmpfs     49M 0 49M 0% /run/user/0  
        1241:/home 20G 3G 18G 7% /mnt/nfs/home_srv  
        

        目錄 /mnt/nfs/linoxide_srv根據需要卸載。

        fuser

        fuser(查找用戶進程)命令可以幫助識別阻止文件系統卸載的進程。查找與指定為命令行參數的文件,目錄或文件系統安裝點關聯的用戶進程。

        # fuser /mnt/nfs/linoxide_srv/  
        /mnt/nfs/linoxide_srv: 24191c  
        

        你可以使用fuser命令 -m 列出訪問文件的所有進程或文件系統上的掛載點的選項 -v 顯示PID命令,用戶,已執行命令等結果的選項。

        # fuser -mv /mnt/nfs/linoxide_srv/  
         USER PID ACCESS COMMAND  
        /mnt/nfs/linoxide_srv:  
         root kernel mount /mnt/nfs/home_srv  
         root 24191 ..c.. bash  
         root 24275 ..c.. bash  
         linoxide 24290 ..c.. vim  
        

        你可以檢查正在執行的命令。你需要防止linoxide用戶保存其工作。

        # fuser -mv /mnt/nfs/linoxide_srv/  
         USER PID ACCESS COMMAND  
        /mnt/nfs/linoxide_srv:  
         root kernel mount /mnt/nfs/home_srv  
         root 24191 ..c.. bash  
         root 24275 ..c.. bash  
        

        你可以使用fuser命令直接停止運行進程。-k 無選項-kill命令

        # fuser -kmv /mnt/nfs/linoxide_srv/  
         USER PID ACCESS COMMAND  
        /mnt/nfs/linoxide_srv:  
         root kernel mount /mnt/nfs/home_srv  
         root 24191 ..c.. bash  
         root 24275 ..c.. bash  
        

        檢查結果

        # fuser -mv /mnt/nfs/linoxide_srv/  
         USER PID ACCESS COMMAND  
         /mnt/nfs/linoxide_srv:  
         root kernel mount /mnt/nfs/home_srv  
        

        只有掛載似乎正在運行。讓我們卸載文件夾

        # umount /mnt/nfs/linoxide_srv/  
        

        沒有錯誤消息。檢查安裝點

        # df -h  
        Filesystem Size Used Avail Use% Mounted on  
        /dev/vda1  20G 3G 18G 7% /  
        devtmpfs  236M 0 236M 0% /dev  
        tmpfs     245M 0 245M 0% /dev/shm  
        tmpfs     245M 3M 237M 4% /run  
        tmpfs     245M 0 245M 0% /sys/fs/cgroup  
        tmpfs      49M 0 49M 0% /run/user/0  
        1241:/home 20G 3G 18G 7% /mnt/nfs/home_srv  
        

        我們可以看到它

        /mnt/nfs/linoxide_srv  
        

        該文件夾已根據需要卸載。

        延遲卸載

        umount命令 -l 選擇執行延遲卸載。該掛載已從文件系統名稱空間中刪除( 未在下方顯示 /mnt/nfs/linoxide 已經) 但它仍然安裝,因此訪問它的程序仍然可以訪問它。當最后一個訪問程序結束時,將執行實際卸載。

        # fuser -mv /mnt/nfs/linoxide_srv/  
         USER PID ACCESS COMMAND  
        /mnt/nfs/linoxide_srv:  
         root kernel mount /mnt/nfs/home_srv  
         root 24366 ..c.. bash  
         root 24381 ..c.. bash  
         linoxide 24398 ..c.. vim  
        

        你可以看到該文件夾正忙。讓我們嘗試延遲卸載

        # umount -l /mnt/nfs/linoxide_srv/  
        

        沒有錯誤消息。檢查命令是否正確運行

        # echo $?  
        0  
        

        檢查安裝點

        # df -h  
        Filesystem Size Used Avail Use% Mounted on  
        /dev/vda1 20G 3G 18G 7% /  
        devtmpfs  236M 0 236M 0% /dev  
        tmpfs     245M 0 245M 0% /dev/shm  
        tmpfs     245M 4M 237M 4% /run  
        tmpfs     245M 0 245M 0% /sys/fs/cgroup  
        tmpfs      49M 0 49M 0% /run/user/0  
        1241:/home 20G 3G 18G 7% /mnt/nfs/home_srv  
        

        我知道掛載點 /mnt/nfs/linoxide_srv它不會再次顯示,但是例如,如前所述,linoxide用戶仍在修改文件,或者可以創建新文件。在服務器上,你可以看到用戶正在修改哪些文件。

        需要緊急卸載分區或僅刪除設備,但是由于設備繁忙,這可能會引起問題。在決定如何解決問題之前,必須檢查系統上的所有進程。使用lsof和fuser命令可以輕松識別阻止文件系統卸載的進程。

        本文鏈接:http://m.abandonstatusquo.com/40846.html

        網友評論comments

        發表評論

        您的電子郵箱地址不會被公開。

        暫無評論

        Copyright ? 2012-2022 YUNWEIPAI.COM - 運維派 京ICP備16064699號-6
        掃二維碼
        掃二維碼
        返回頂部
        十分钟免费观看视频高清下载