標籤:
在linux中,/etc/fstab檔案是磁碟掛載的問題,若該檔案不小心給修改了,或者被刪除了,那麼就會導致系統無法重啟。因為/etc/fstab檔案是記錄磁碟掛載的資訊,若該檔案出現了問題,那麼對應的主目錄(/)和(/boot)以及swap的磁碟將無法掛載,所以這個檔案對於linux系統來說是相當重要的。
我犯的錯誤是:我在對hadoop叢集進行檔案配置的時候,在一台主機上對/etc/fstab檔案進行修改,修改好了之後,準備分發給其他主機,我開始以為fstab檔案的內容是一樣的,於是我就該檔案分發給其他主機上,並且覆蓋了其他主機原來的fstab,完了之後,我就重啟其他主機,發現其他主機無法掛載硬碟,導致系統無法重啟。於是就想到,每個主機裡面的fstab檔案內容是不一樣的。因此我將犯了致命的錯誤。於是我就得想辦法恢複這些主機上的fstab檔案。網上google了一下。發現還是有辦法解決的。
在這裡得說明一下,幸好我有一台主機是完好無損的,這樣子我可以參照這個完好無損的主機來修改其他主機的fstab檔案。修改的方法如下:
1、網上搜了一下,大部分說是要進入BIOS後進行linux resuce模式。但我在這裡介紹一下簡單的方式:那就是重新製作/etc/fstab檔案。製作的方法就是裡喲個完好無損主機的fstab檔案。因此將完好無損主機上的fstab檔案分發給所有的主機。
2、既然要重新製作fstab檔案,那麼需要對fstab檔案的內容進行瞭解,我的fstab的問價內容如下:該檔案可以分為三個部分。
## /etc/fstab# Created by anaconda on Tue Jun 30 23:29:58 2015## 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#第一部分(這是關鍵區段)UUID=16fef5b5-a9cc-4d6f-8d3f-0081546ffb04 / ext4 defaults 1 1UUID=6f352ae4-e53a-4e32-8129-369c6ba24e9a /boot ext4 defaults 1 2UUID=adf600ad-ab03-482f-ae6f-fb80e973da1e swap swap defaults 0 0#第二部分tmpfs /dev/shm tmpfs defaults 0 0devpts /dev/pts devpts gid=5,mode=620 0 0sysfs /sys sysfs defaults 0 0proc /proc proc defaults 0 0#第三部分//192.168.2.246/Share /mnt/share cifs default,auto,username=administrator,password=Passw0rd!/dev/sdb1 /mnt/hdb ext4 defaults 0 0/dev/sdc1 /mnt/hdc ext4 defaults 0 0/dev/sdd1 /mnt/hdd ext4 defaults 0 0/dev/sde1 /mnt/hde ext4 defaults 0 0 /dev/sdf1 /mnt/hdf ext4 defaults 0 0
其中,第一部分最為關鍵,因為第一部分就是涉及到系統檔案磁碟的掛在的問題,這就是我們需要修改的地方;第二部分和第三部分所有主機都一樣。
3、針對第一部分,我們首先可以通過命令:fdisk -l 查看系統中對應的是哪個磁碟掛載 / 、/boot 以及swap這三個目錄。
3.1、我通過執行 fdisk -l 命令後可以看到如下內容:
通過我們可以明確看到 swap對應的是磁碟/dev/sda3,那麼/dev/sda1和/dev/sda2與/和 /boot對應關係我們不清楚。於是我通過查看完好無損的主機上的對應關係,發現/dev/sda2對應的是 / ;/dev/sda1對應的是/boot。
4、接下來我們需要知道的是/etc/fstab檔案中UUID表示的是什麼意思?通過網上搜尋,答案如下:
如果你有多塊硬碟,硬碟在電腦中的順序變化的時候,硬碟相同的名稱可能代表著不同的硬碟分區,如果你是從 USB 裝置啟動,與其他 USB 裝置的插入順序也會導致分區識別的困難。
這個時候 UUID 就派上用場了,UUID 全稱是 Universally Unique Identifier,也就是說,每個分區有一個唯一的 UUID 值,這樣就不會發生分區識別混亂的問題了。
5、如何查看UUID呢?(紅色的表示的是UUID)
通過瀏覽 /dev/disk/by-uuid/ 下的裝置檔案資訊。執行如下命令:
# ls -l /dev/disk/by-uuid/
------
lrwxrwxrwx 1 root root 10 10-13 09:14 0909-090B -> ../../sdb5
lrwxrwxrwx 1 root root 10 10-13 09:13 7c627a81-7a6b-4806-987b-b5a8a0a93645 -> ../../sda4
.....
6、那麼接下來就是可以修改其他主機的fstab檔案了:
6.1、重啟之後會需要你輸入密碼進入root許可權下的介面
6.2、此時檔案系統是唯讀模式,若需要修改/etc/fstab檔案,則需要執行:mount -o remount rw / 命令。
6.3、此時就可以修改/etc/fstab檔案了。執行: vi /etc/fstab
6.4、修改沒一個主機的UUID的值即可。
6.5、reboot重啟,ok了。
linux中/etc/fstab檔案刪除或修改了,導致系統無法啟動