Я пытаюсь установить подкачку в /etc/rc.local
сюда:
sudo fallocate -l 8192M /mnt/swapfile1
sudo mkswap /mnt/swapfile1
sudo swapon /mnt/swapfile1
Это однако возвращает ошибку:
fallocate: /mnt/swapfile.sys: fallocate failed: Operation not supported
мои разделы (EC2) являются этим:
ubuntu@ip-10-0-0-52:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/xvda1 7.8G 2.8G 4.6G 38% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 3.7G 8.0K 3.7G 1% /dev
tmpfs 752M 204K 752M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 3.7G 0 3.7G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/xvdb 414G 71M 393G 1% /mnt
с dd
это работает, но это довольно медленно, я хотел удостовериться, что подкачка присутствует на начальной загрузке.
С Ядра Linux v2.6.31, fallocate системный вызов поддерживается btrfs, ext4, ocfs2, и xfs файловые системы.
можно подтвердить, какую файловую систему Вы имеете с этой командой (принимающий имя устройства, данное выше):
file -sL /dev/xvdb
, К сожалению, кажется, что в некоторых случаях устройство хранения данных экземпляра обеспечивается отформатированное в ext3
вместо ext4
.
Принятие Вашего устройства хранения данных экземпляра в /dev/svdb
, и Вы хотите сделать файл подкачки в /mnt/swap
, это составляет 16 ГБ в размере (огромный!), Помещая это /etc/rc.local
, сделает, которые происходят каждый раз при начальной загрузке. Необходимо прокомментировать строку для /dev/xvdb
в /etc/fstab
в этом случае, потому что теперь устройство будет смонтировано /etc/rc.local
поздно в процессе начальной загрузки вместо рано.
umount /dev/xvdb
mkfs.ext4 /dev/xvdb
mount /dev/xvdb /mnt
fallocate -l 16GB /mnt/swap
chmod 600 /mnt/swap
mkswap /mnt/swap
swapon /mnt/swap