LINUX.ORG.RU

История изменений

Исправление Kroz, (текущая версия) :

В общем, покумекал я по твоей задаче... Я бы сделал так:

1. Если нужно не на этапе загрузки - формировал бы fstab каким-то простым скриптом, например:

#!/bin/sh

SUBVOL="root/orig"

FSTAB="
/proc      /proc       proc   rw,nosuid,nodev,noexec 0 0
/dev/shm   /dev/shm    tmpfs  rw,nosuid,nodev,noexec 0 0

/dev/cdrom /mnt/cdrom  auto   iocharset=utf8,users,noauto,owner,ro 0 0

LABEL=\"kroot82\" /       reiserfs        rw,acl,user_xattr,data=journal,barrier=flush,notail     0 0
LABEL=\"kswap82\" none    swap            sw                              0 0
LABEL=\"kvar82\"  /var    reiserfs        rw,noatime,nodiratime,notail    0 0
LABEL=\"khome82\" /home   reiserfs        rw,acl,user_xattr,data=journal,barrier=flush,notail     0 0
LABEL=\"data\"    /mnt/data       reiserfs        ro,acl,user_xattr,data=journal,barrier=flush,notail    0 0

/dev/sda2               /                       btrfs           noatime,ssd_spread,discard,compress=lzo,space_cache,subvol=$SUBVOL      0 0

/home/kroz/mine/archive/photos/my\040photos /home/ftp/photos      none    bind    0       0
"

echo "$FSTAB"

Здесь я мешал свой fstab с твоей строчкой. Если не знаешь bash:
- вместо $SUBVOL подставится значение этой переменной, которое определено вверху. Можешь задавать вручную, а если есть правила, можно задавать автоматически.
- при копировании оригинального fstab в это скрипт, экранируй двойные кавычки, обратные косые, доллары
- скрипт выводит содержимое на экран (дабы было легко дебажить); чтобы получить из этого файл, перенаправь вывод в fstab . Только бекапы всегда делай.

2. Если это делать нужно на этапе загрузки, то добавил бы соотв. строки в /etc/init.d/localmount - загрузочный скрипт, который, собственно, отвечает за монтирование устройств во время загрузки. Скриптом как выше сказано нельзя, так как на момент запуска localmount у нас примонтирован только корень, и то read-only. Но, если очень нужно, здесь можно тоже поизгаляться. Но, если дело в одной строчке, я бы добавил что-то типа:

mount /dev/sda2	/ -t btrfs -o noatime,ssd_spread,discard,compress=lzo,space_cache,subvol=root/orig
Опять же, если «root/orig» меняется динамически, соотв. скриптец легко это сделает. Если нужна помощь - расскажи правило, помогу со скриптом.

Вопросы? Комментарии? Пожелания?

Исправление Kroz, :

В общем, покумекал я по твоей задаче... Я бы сделал так:

1. Если нужно не на этапе загрузки - формировал бы fstab каким-то простым скриптом, например:

#!/bin/sh

SUBVOL="root/orig"

FSTAB="
/proc      /proc       proc   rw,nosuid,nodev,noexec 0 0
/dev/shm   /dev/shm    tmpfs  rw,nosuid,nodev,noexec 0 0

/dev/cdrom /mnt/cdrom  auto   iocharset=utf8,users,noauto,owner,ro 0 0

LABEL=\"kroot82\" /       reiserfs        rw,acl,user_xattr,data=journal,barrier=flush,notail     0 0
LABEL=\"kswap82\" none    swap            sw                              0 0
LABEL=\"kvar82\"  /var    reiserfs        rw,noatime,nodiratime,notail    0 0
LABEL=\"khome82\" /home   reiserfs        rw,acl,user_xattr,data=journal,barrier=flush,notail     0 0
LABEL=\"data\"    /mnt/data       reiserfs        ro,acl,user_xattr,data=journal,barrier=flush,notail    0 0

/dev/sda2               /                       btrfs           noatime,ssd_spread,discard,compress=lzo,space_cache,subvol=$SUBVOL      0 0

/home/kroz/mine/archive/photos/my\040photos /home/ftp/photos      none    bind    0       0
"

echo "$FSTAB"

Здесь я мешал свой fstab с твоей строчкой. Если не знаешь bash: - вместо $SUBVOL подставится значение этой переменной, которое определено вверху. Можешь задавать вручную, а если есть правила, можно задавать автоматически. - при копировании оригинального fstab в это скрипт, экранируй двойные кавычки, обратные косые, доллары - скрипт выводит содержимое на экран (дабы было легко дебажить); чтобы получить из этого файл, перенаправь вывод в fstab . Только бекапы всегда делай.

2. Если это делать нужно на этапе загрузки, то добавил бы соотв. строки в /etc/init.d/localmount - загрузочный скрипт, который, собственно, отвечает за монтирование устройств во время загрузки. Скриптом как выше сказано нельзя, так как на момент запуска localmount у нас примонтирован только корень, и то read-only. Но, если очень нужно, здесь можно тоже поизгаляться. Но, если дело в одной строчке, я бы добавил что-то типа:

mount /dev/sda2	/ -t btrfs -o noatime,ssd_spread,discard,compress=lzo,space_cache,subvol=root/orig
Опять же, если «root/orig» меняется динамически, соотв. скриптец легко это сделает. Если нужна помощь - расскажи правило, помогу со скриптом.

Вопросы? Комментарии? Пожелания?

Исходная версия Kroz, :

В общем, покумекал я по твоей задаче... Я бы сделал так: 1. Если нужно не на этапе загрузки - формировал бы fstab каким-то простым скриптом, например:

#!/bin/sh

SUBVOL="root/orig"

FSTAB="
/proc      /proc       proc   rw,nosuid,nodev,noexec 0 0
/dev/shm   /dev/shm    tmpfs  rw,nosuid,nodev,noexec 0 0

/dev/cdrom /mnt/cdrom  auto   iocharset=utf8,users,noauto,owner,ro 0 0

LABEL=\"kroot82\" /       reiserfs        rw,acl,user_xattr,data=journal,barrier=flush,notail     0 0
LABEL=\"kswap82\" none    swap            sw                              0 0
LABEL=\"kvar82\"  /var    reiserfs        rw,noatime,nodiratime,notail    0 0
LABEL=\"khome82\" /home   reiserfs        rw,acl,user_xattr,data=journal,barrier=flush,notail     0 0
LABEL=\"data\"    /mnt/data       reiserfs        ro,acl,user_xattr,data=journal,barrier=flush,notail    0 0

/dev/sda2               /                       btrfs           noatime,ssd_spread,discard,compress=lzo,space_cache,subvol=$SUBVOL      0 0

/home/kroz/mine/archive/photos/my\040photos /home/ftp/photos      none    bind    0       0
"

echo "$FSTAB"

Здесь я мешал свой fstab с твоей строчкой. Если не знаешь bash: - вместо $SUBVOL подставится значение этой переменной, которое определено вверху. Можешь задавать вручную, а если есть правила, можно задавать автоматически. - при копировании оригинального fstab в это скрипт, экранируй двойные кавычки, обратные косые, доллары - скрипт выводит содержимое на экран (дабы было легко дебажить); чтобы получить из этого файл, перенаправь вывод в fstab . Только бекапы всегда делай.

2. Если это делать нужно на этапе загрузки, то добавил бы соотв. строки в /etc/init.d/localmount - загрузочный скрипт, который, собственно, отвечает за монтирование устройств во время загрузки. Скриптом как выше сказано нельзя, так как на момент запуска localmount у нас примонтирован только корень, и то read-only. Но, если очень нужно, здесь можно тоже поизгаляться. Но, если дело в одной строчке, я бы добавил что-то типа:

mount /dev/sda2	/ -t btrfs -o noatime,ssd_spread,discard,compress=lzo,space_cache,subvol=root/orig
Опять же, если «root/orig» меняется динамически, соотв. скриптец легко это сделает. Если нужна помощь - расскажи правило, помогу со скриптом.

Вопросы? Комментарии? Пожелания?