6

У меня есть SSD с btrfs, я попытался создать файл подкачки, как:

dd if=/dev/zero of=swapfile01  bs=1M count=10240
mkswap swapfile01
chmod 600 swapfile01
swapon swapfile01

В дмесг вижу

[238434.731654] swapon: swapfile has holes

Я понимаю, что, вероятно, есть некоторые дыры, вызванные фрагментацией диска, но это SSD-диск, так что, вероятно, это не должно иметь значения? Есть ли способ игнорировать отверстия? Или как я могу это исправить?

Не по теме - почему я хочу это (чтобы избежать ненужных вопросов в комментариях): у меня есть зашифрованный диск, который мучает изменение размера ****, поэтому я просто решил создать файл подкачки вместо изменения размера раздела подкачки (я добавил 14 ГБ оперативной памяти, от 4 ГБ до 16 ГБ и теперь не может переходить в спящий режим).

3 ответа3

7

Из btrfs FAQ:

Поддерживает ли btrfs файлы подкачки? В настоящее время нет. Простое создание файла NOCOW не помогает, поддержка файла подкачки опирается на одну функцию, которую btrfs намеренно не реализует из-за возможных повреждений. (...) Обходной путь, хотя и с низкой производительностью, заключается в монтировании файла подкачки через петлевое устройство.

Так что пока нет хорошего способа создания файла подкачки в разделе btrfs.

1

Я прочитал здесь, что можно использовать Zram для обмена. Хотя не пробовал.

Надеюсь, это поможет. Cheerio.

1

Вот как настроить swap через loopback на btrfs:

# dd if=/dev/zero of=/swapfile bs=1M count=1k
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB, 1.0 GiB) copied, 1.23138 s, 872 MB/s

# losetup --find --show /swapfile
/dev/loop0

# mkswap /dev/loop0
Setting up swapspace version 1, size = 1024 MiB (1073737728 bytes)
no label, UUID=04b048e2-47ab-4ab0-a79e-7e1c481a10c9

# swapon /dev/loop0

Это идеал? Нет. Не используйте его в производстве. Но это работает как последнее средство.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .