Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How to make aufs-based chroot (for KDE3 devel) #10

Open
midenok opened this issue Nov 8, 2013 · 11 comments
Open

How to make aufs-based chroot (for KDE3 devel) #10

midenok opened this issue Nov 8, 2013 · 11 comments
Labels

Comments

@midenok
Copy link
Member

midenok commented Nov 8, 2013

  1. Install prerequisites: aufs-tools and scipts from here (get them with git clone to correctly import symlink)
    To check, if aufs is supported by your kernel use these commands:
root:~# modprobe aufs
root:~# lsmod|grep aufs
aufs                  182094  0
  1. Create /opt/jail-trees, put there create-tree.sh
  2. Create /opt/jail, put there mount.sh and symlink to it umount.sh
  3. Run from inside /opt/jail-trees (as root):
./create-tree.sh kde3
rm -rf ./kde3/home
  1. Run from inside /opt/jail (as root):
./mount.sh kde3
  1. Fix any errors with mount/unmount, so the script will run smoothly without any messages. Check results with mount command.
  2. Hooray, we have working jail inside /opt/jail/kde3! Use it with chroot or more sophisticated schroot.
    For chroot run:
    chroot /opt/jail/kde3 and add into /etc/jailrc:
PS1={kde3}$PS1

then add into .bashrc:

[ -f /etc/jailrc ] && . /etc/jailrc
@midenok
Copy link
Member Author

midenok commented Nov 13, 2013

[20:20:06] Екатерина: Привет, у меня возникли проблемы с chroot. Делаю по wiki на git'e и на 5-ом пункте (запуск mount.sh) возникает вот такое http://pastebin.com/KUf69NUy . Подскажи, пожалуйста, что делать.

[00:31:33] lyosha: привет! я думаю, что у тебя нет отдельной fs для /usr, /var, /home как у меня. для этого случая я не тестировал. надо просто убрать их из обработки (он не может накладывать одну и ту же fs дважды)

Оказалось: /opt и / были в одном дереве. Пролечилось переносом /opt в /home (т.к. /home был отдельным деревом).

@midenok
Copy link
Member Author

midenok commented Nov 15, 2013

Женя, как дела? Всё получается? Катя помогла?

Катя, дай пожалуйста мне модифицированный скрипт mount.sh. Я его закоммичу себе в бранч, потом буду делать универсальную версию.

@kei91
Copy link
Member

kei91 commented Nov 15, 2013

mount.sh

@BadEugene
Copy link

Катя помогла, но ошибки во время исполнения mount.sh остались, попозже выложу подробное описание действий.

@midenok
Copy link
Member Author

midenok commented Nov 15, 2013

Спасибо!

@BadEugene
Copy link

Значит так:
1 Внес запись /home/opt /opt bind bind 0 0 в fstab
2 Перенес все из /opt в /home/opt
3 Перезагрузился
4 Создал описанную в руководстве структуру, заменил mount.sh
5 Вывод modprobe:

     linux-dgy4:/home/opt # modprobe aufs
     linux-dgy4:/home/opt # lsmod|grep aufs
     aufs                  330129  0 

6 Запустил

./create-tree.sh kde3
rm -rf ./kde3/home

7 Результат выполнения mount.sh

linux-dgy4:/home/opt/jail # ./mount.sh kde3
mount: mount point /opt/jail/kde3/var/cache/apt/archives does not exist
mount --bind /var/cache/apt/archives /opt/jail/kde3/var/cache/apt/archives

Дома результат был другой. была та большая ошибка как в начале у Кати. На этом компе, я так понимаю
осталось разобраться с /opt/jail/kde3/var/cache/apt/archives

@midenok
Copy link
Member Author

midenok commented Nov 15, 2013

Поскольку у тебя недебиан, исключи /opt/jail/kde3/var/cache/apt/archives из скрипта.

@BadEugene
Copy link

Исключил, от chroot-ился в kde3 качаю зависимости kdelibs3 и kdebase3

@midenok
Copy link
Member Author

midenok commented Nov 15, 2013

Гуд!

@BadEugene
Copy link

then add into .bashrc:

[ -f /etc/jailrc ] && . /etc/jailrc

В какой .bashrc добавлять? Их несколько в разных каталогах

Самоответ: Добавлять в /home/<username>. Правда почему работает для рута, непонятно, вроде же у рута свой bashrc, но это наверное не важно

@midenok
Copy link
Member Author

midenok commented Dec 3, 2013

/root маунтится наслоением (aufs)
/home маунтится биндингом (bind)

Поэтому /home один и тот же для jail и для system. Если в jail изменить /home/user/.bashrc, то он изменится и в system. /etc маунтится наслоением, поэтому в system /etc/jailrc будет отсутствовать.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants