LINUX.ORG.RU

Сломалась ФС F2FS после swap to file

 , ,


0

3

Всем здравствуйте. Возникла необходимость создать swap. Свободного раздела не было, поэтому решил создать swap в файл. Делал все по инструкции https://wiki.archlinux.org/index.php/Swap В итоге было сделано:

dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon --discard /swapfile 
Так же добавил запись в fstab. swap сразу определился. После пары минут работы упала графическая оболочка kde. Попытался выключить\перезагрузить ПК через терминал, на что получал, что аргумент какой либо из команды неверный. Сделал хард ресет. После запуска ПК получаю:
...
:: Loading keymap...done
:: mounting '/dev/sdb2' on real root
[ 3.279565] F2FS-fs (sbd2): Can't find valid F2FS filesystem in 2th superblock
[ 3.299279] F2FS-fs (sbd2): SIT is corrupted node# 174191 vs 586513
[ 3.299312] F2FS-fs (sbd2): Failed to initialize F2FS segment manager (-117)
mount: /new_root: mount(2) system call failed: Structure needs cleaning.
...
[rootfs ]#_ 
Пытался через live режим Linux Mint выполнить fsck.f2fs /dev/sda2 На что получал огромный список поврежденных блоков, после спрашивало восстановить ли файлы из ./lost_find? Отвечал Да. В итоге восстановление завершалось ошибкой. Надеюсь есть возможность спасти мою ФС.
upd: На вопрос восстановить ли файлы ответил нет, после спросило восстановить ли раздел - ответила да, затем спросило восстановить ли файоы - ответил нет. Написало Done. Раздел по прежнему не монтируется, но при запуске теперь пишет
...
[ 3.277440] F2FS-fs (sbd2): Can't find valid F2FS filesystem in 2th superblock
[ 3.370489] F2FS-fs (sbd2): Failed to read root inode
....

17 марта 2021 г.

Можно было бы попробовать swap не напрямую через файл, а через mount loop. У меня так на старом Debian 8 работало. Ядро 3.x.

# Стартовый скрипт
# Его нужно ещё добавить в автостарт systemd.
chmod a+x -- /etc/rc.local
#!/bin/bash
# Файл /etc/rc.local

SIZEMB=1024
IMG=/swap-mount-loop.img

ls -1 -- "${IMG}" > /dev/null 2> /dev/null
if [ $? = 0 ]
then
    echo Found loop-image.

    # Mount swap through loop
    LOOPDEV=$(losetup -f)
    losetup "$LOOPDEV" "${IMG}"

    swapon "$LOOPDEV"
else
    echo Create loop-image.
    dd if=/dev/zero "of=${IMG}" bs=1M count=$SIZEMB

    # Права на свап-файл
    chown 0:0 -- "${IMG}"
    chmod ug=rw,o= -- "${IMG}"

    # Mount swap through loop
    LOOPDEV=$(losetup -f)
    losetup "$LOOPDEV" "${IMG}"

    # Подготовка файла свапа
    mkswap "$LOOPDEV"

    swapon "$LOOPDEV"
fi

netwish
()
Последнее исправление: netwish (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.