Файловая система может быть повреждена из-за различных неполадок или внезапного отключения компьютера. При обычном выключении все файловые системы монтируются только для чтения, а все несохраненные данные записываются на диск. Но если питание выключается неожиданно, часть данных теряется. Соответственно, могут быть потеряны важные данные, что приведёт к повреждению самой файловой системы.
Одной из проблем может стать временная недоступность системы хранения данных (СХД). Виртуальные машины (ВМ) на ОС Linux очень чутко реагируют на подобные явления, переходя в Read Only.
В этой статье мы рассмотрим варианты решения данного вопроса:
Первый и самый простой способ — это перезагрузка «Виртуальной машины»
Чтобы перезагрузить виртуальную машину:
- Нажмите левой кнопкой мыши на раздел «Virtual Machines» в левой области интерфейса vCloud Director. (рис. 1. действие 1)
- Найдите нужную вам виртуальную машину в основной области интерфейса. (рис. 1. действие 2)
- Нажмите левой кнопкой мыши на раскрывающееся меню «Actions» под описанием виртуальной машины. (рис. 1. действие 3)
- В выпадающем списке выберите опцию «Reset» и нажмите её левой кнопкой мыши. (рис. 1. действие 4)
Рисунок 1. VMware Cloud Director - Vritual Machines, перезагрузка виртуальной машины.
Во втором случае Linux не загружается, пользователю доступна только командная строка initramfs
Рисунок 2. Командная строка с initramfs
*Initramfs – это начальная файловая система в ОЗУ, основанная на tmpfs, которая не использует отдельное блочное устройство. Как и initrd, она содержит утилиты и скрипты, требуемые для монтирования файловых систем перед вызовом init, который располагается на корневой файловой системе.
Если вы не видите такой ошибки, попробуйте ввести exit в окне терминала. Ошибка может появиться после этого:
(initramfs) exit
В ошибке указан том (в нашем случае sda1), который требует запуска ручной проверки диска. В командной строке initramfs выполните:
fsck /dev/sda1 –y
Также с помощью флага -A вы можете проверить все файловые системы, подключённые к компьютеру:
fsck -A –y /dev/sda1
После полной проверки необходимо перезапустить систему.
Если система не переходит в initramfs, необходимо загрузиться с LiveCD
В этом случае необходимо примонтировать iso образ LiveCD к нашей виртуальной машине. В нашей базе знаний есть статья о том, как добавить свой образ в каталог:
Для этого необходимо:
- Нажмите левой кнопкой мыши на раздел «Virtual Machines» в левой области интерфейса vCloud Director. (рис. 3. действие 1)
- Найдите нужную вам ВМ в основной области интерфейса.
- Нажмите левой кнопкой мыши по раскрывающемуся меню «Actions» под описанием ВМ . (рис. 3. действие 2)
- В выпадающем списке выберите опцию «Media» и нажмите на неё левой кнопкой мыши. (рис. 3. действие 3)
- В выпадающем списке выберите опцию «Insert Media» (рис. 3. действие 4)
Рисунок 3. VMware Cloud Director - Vritual Machines, примонтирование ISO образа. - В появившемся окне выберите LiveCD образ, который предварительно нужно загрузить в ваш «каталог». В качестве примера мы используем gparted-live (рис. 4 действие 1), но можно использовать любой другой. После выбора iso-образа нажмите «insert» (рис. 4 действие 2)
Рисунок 4. Выбор ISO-образа LiveCD: gparted-live - Далее в настройках BIOS переключитесь на загрузку с CD. Для этого необходимо попасть в меню виртуальной машины. Нажмите на её имя, чтобы попасть в это меню (цифра один на рис. 5 — имя вашей ВМ).
- В «General» (справа) выберите Edit (рис.5 действия 2 и 3 соответственно).
Рисунок 5. Меню виртуальной машины - В появившемся окне необходимо поставить значение Boot Delay от «5» (задержка загрузки, необходимая для нажатия клавиши, чтобы попасть в BIOS). Перевести переключатель «Enter BIOS setup» во включенный режим. Нажмите «Save». (рис. 6, действия 1-3 соответственно).
Рисунок 6. Настройки параметра General - После запуска машины через «Power on, Force Recustomization» дождитесь загрузки ВМ и откройте «VM console», чтобы попасть в окно BIOS. (рис. 7 действие 1-2)
Рисунок 7. Включение виртуальной машины с применением измененных настроек - Во вкладке «Boot» «поднимите» значение CD-ROM на самый вверх. Выберите его и нажмите «+» на клавиатуре несколько раз, пока CD-ROM не займёт первую позицию. Это позволит системе загрузиться с нашего примонтированного образа (gparted-live)(рис.8)
Рисунок 8. Меню BIOS виртуальной машины. - Перейдите во вкладку «Exit» и выберите «Save and exit».
- Виртуальная машина загрузится с нашего образа. В появившемся окне выбираем первый пункт и нажмите «Enter».
- Выберите «Don’t touch keymap» и нажмите «Enter». (рис. 9)
Рисунок 9. Запуск gparted-live - Введите «24» — русский язык, затем «Enter»
- Далее введите «0» и снова «Enter».
- Система загрузилась. Автоматически откроется окно утилиты Gparted. Закройте его и откройте «terminal» (рис. 10)
Рисунок 10. Запуск терминала - В появившемся окне терминала введите команду:
sudo fsck -y -f -c /dev/sda1
если увидите ошибку, то скорее всего нужно отмонтировать данный раздел:
sudo umount /dev/sda1
Ключи и параметры команды fsck:
y — всегда отвечать yes на все вопросы (имеется альтернатива: ключ p — начинает проверку в полностью автоматическом режиме);
f — принудительная проверка файловой системы (даже если файловая система помечена как полностью работоспособная)
c — ищет битые блоки (bad blocks), а после отмечает их соответствующим образом/dev/sda1 — устройство или раздел, которые нужно проверить.
Вывод терминала после проверки в нашем случае:
ubuntu@ubuntu:~$ sudo fsck -y -f -c /dev/sda1fsck from util-linux 2.20.1e2fsck 1.42.5 (29-Jul-2012)
Checking for bad blocks (read-only test): 0.00% done, 0:00 elapsed.
(0/0/0 errdone/dev/sda1: Updating bad block inode.
Pass 1:Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information/dev/sda1:
***** FILE SYSTEM WAS MODIFIED *****/dev/sda1: 372991/1921360 files (0.2% non-contiguous), 2539924/7680000 blocks
***** FILE SYSTEM WAS MODIFIED *****
Это системное сообщение говорит, что текущая файловая система модифицировалась программой fsck.
После всех операций нужно перезагрузиться и отмонтировать образ от виртуальной машины. Для этого нажмите «Eject media» (рис.11 действие 1-4).
Рисунок 11. "Отмонтирование" LiveCD образа из виртуальной машины
Если на 18 пункте у вас возникли трудности, проследуйте следующим инструкциям- проверим разметку дисков командой: > lsblk
Пример вывода команды:
Из вывода команды видим, LVM назван ubuntu--vg-root, однако мы не можем запустить fsck на это имя, так как команда не найдёт его. Нужно получить полное имя, для этого нужно запустить команду lvm lvscan для получения LV имени с которым мы можем запустить fsck на LVM.
sudo lvscan
Пример вывода команды:
Видим имя диска который нужно проверить на ошибки это /dev/ubuntu-vg/root, оно должно подойти для запуска fsck на этом имя.
Если /dev/ubuntu-vg/root не в состояние ACTIVE , необходимо сделать его активным, для этого используйте команду:
sudo lvchange -ay /dev/ubuntu-vg/root
Запускаем форсированную проверку с автоматическим исправлением ошибок fsck для проверки тома LVM :
sudo fsck -fy /dev/ubuntu-vg/root
После всех операций нужно перезагрузиться
sudo reboot -f
И отмонтировать образ от виртуальной машины. Для этого нажмите «Eject media» (рис.11 действие 1-4).