Я только что создал новую растянутую виртуальную машину, чтобы проверить это. Минимальная установка (только ssh и стандартные системные инструменты ), отредактируйте sources.list, чтобы добавить contrib и non -бесплатно, затем:
apt-get install spl-dkms zfs-dkms
Вы также можете установить вручную zfsutils-linux
. Он должен быть установлен автоматически при установке zfs-dkms
, но зависимости могут различаться для разных выпусков Debian и для разных версий пакетов Debian ZoL :
apt-get install zfsutils-linux
Похоже, что в юнит-файле systemd для zfs-share
есть ошибка. Он пытается запустить /usr/bin/rm
вместо /bin/rm
.
Быстрое исправление — запустить ln -s /bin/rm /usr/bin
или, как вариант,:
cd /etc/systemd/system
cp -a /lib/systemd/system/zfs-share.service.
edit zfs-share.service and change `/usr/bin/rm` to `/bin/rm`
, а затем перезапустите службы zfs:
systemctl restart zfs-import-cache
systemctl restart zfs-import-scan
systemctl restart zfs-mount
systemctl restart zfs-share
ПРИМЕЧАНИЕ. :Я вручную запускал modprobe zfs
перед перезапуском любой из служб zfs. Я не уверен, сделают ли они это автоматически или нет, так что вам тоже может понадобиться это сделать.
Кстати, вы, вероятно, тоже захотите apt-get install zfs-initramfs
, чтобы убедиться, что zfs загружается во время initramfs.
Я проверил, что это работает с:
# truncate -s 100M /root/z1
# truncate -s 100M /root/z2
# zpool create tank mirror /root/z1 /root/z2
# zfs set compression=lz4 tank
# rsync -ax /etc /tank/
# du -sch /etc /tank/etc/
3.5M /etc
825K /tank/etc/
4.3M total
# zpool scrub tank
# zpool status
pool: tank
state: ONLINE
scan: scrub repaired 0 in 0h0m with 0 errors on Thu Aug 3 19:28:21 2017
config:
NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
/root/z1 ONLINE 0 0 0
/root/z2 ONLINE 0 0 0
errors: No known data errors
Zpool работает, и /tank автоматически монтируется после перезагрузки.
Заключение :Теперь все работает.
Кстати, эта растянутая виртуальная машина использует в качестве диска ZFS zvol, созданный в моей основной sid
системе. Я сделал его снимок сразу после первоначальной установки,перед установкой spl -dkms и zfs -dkms, чтобы я мог быстро вернуться и начать заново, если что-то серьезное пойдет не так.
Сначала я сделал zvol всего с 1 ГБ, а позже мне пришлось увеличить его, чтобы было достаточно места для сборки -Essential, Linux -заголовков -amd64 и т. д.:
# zfs list -r -t all export/volumes/stretch
NAME USED AVAIL REFER MOUNTPOINT
export/volumes/stretch 6.25G 834G 1.77G -
export/volumes/stretch@2017-08-03-18:31:04 279M - 1.09G -
настройка compression=lz4
на танке в ВМ наверное хуже чем бесполезна -на zvol уже есть компрессия lz4.
Когда вы выходите из сеанса оболочки fish
, оболочка bash
, которая запускалась, но была «приостановлена» во время работы fish
, продолжает работать. По какой-то причине он оставляет терминал в запутанном состоянии (попробуйте reset
или stty sane
, чтобы исправить это ).
Если вы всегда хотите запускать оболочку fish
вместо bash
, то будет проще просто изменить оболочку входа в систему на fish
. Вы делаете это с помощью команды chsh
на большинстве Unices.
Если это невозможно, то вместо того, чтобы просто запускать fish
из вашего ~/.bashrc
файла, используйте exec fish
где-то в начале файла. Это заменит любой интерактивный bash
сеанс оболочки сеансом оболочки fish
, и при выходе из сеанса fish
вы не останетесь в сеансе bash
.
Вы можете запустить stty sane
или reset
, чтобы вернуть терминалу то, что вы ожидаете.
Вместо запуска с нижней части .bashrc
вы можете настроить свой терминал так, чтобы он запускал fish
вместо вашей оболочки входа в систему.