Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Jak najprościej zrobić chroot z Ubuntu na Debiana?
Proszę o proste propozycje tego rozwiązania. :)
Ostatnio edytowany przez prosze (2013-01-11 08:18:08)
Offline
Tak samo jak z debiana czy redhata czy czegokolwiek :P
Montujesz partycje z debianem a potem chroot /katalog/ /bin/bash
Offline
[b]Do wykonania z uprawnieniami użytkownika root z poziomu LiveCD lub innego systemu.[/b]
Utworzenie katalogu w którym zamontowana zostanie główna partycja Debiana:
mkdir /mnt/debian
Zamontowanie głównej partycji Debiana:
mount /dev/sdaX /mnt/debian
(za X należy podstawić numer partycji na której zainstalowany jest Debian, przykładowo sda1 lub sda2)
Jeżeli system zainstalowany jest na więcej niż jednej partycji (np. ma osobne partycje montowane do katalogów /boot, /usr itd.) trzeba zamontować je w analogiczny sposób do odpowiednich katalogów. Np.:
mount /dev/sdaY /mnt/debian/boot mount /dev/sdaZ /mnt/debian/usr
(za Y, Z itd. oczywiście podstawiając prawidłowe numery partycji)
Zamontowanie specjalnych systemów plików:
mount -t proc proc /mnt/debian/proc mount -t sysfs sysfs /mnt/debian/sys mount -o bind /dev /mnt/debian/dev mount -o bind /dev/pts /mnt/debian/dev/pts
Skopiowanie /etc/resolv.conf:
cp /etc/resolv.conf /mnt/debian/etc
(dzięki temu w chrootowanym systemie będzie połączenie z internetem jeżeli na głównym jest)
Chroot:
chroot /mnt/debian
Offline
#!/bin/bash grep '/dev/sda7' /proc/mounts | grep '/Debian' || mount /dev/sda7 /Debian &>/dev/null grep '/Debian/dev' /proc/mounts|| mount -o bind /dev /Debian/dev &>/dev/null grep '/Debian/proc' /proc/mounts || mount -t proc /proc /Debian/proc &>/dev/null grep '/Debian/var/tmp' /proc/mounts || mount -t tmpfs -o noatime,mand,mode=1777 tmpfs /Debian/var/tmp &>/dev/null grep '/Debian/tmp' /proc/mounts || mount -t tmpfs -o noatime,mand,mode=1777 tmpfs /Debian/tmp &>/dev/null grep '/Debian/var/run' /proc/mounts || mount -t tmpfs -o noatime,mand,mode=1777 tmpfs /Debian/var/run &>/dev/null grep '/Debian/var/run' /proc/mounts || mkdir /Debian/var/run/mysqld &>/dev/null grep '/Debian/var/run/mysqld' /proc/mounts || mount -o bind /var/run/mysqld/ /Debian/var/run/mysqld &>/dev/null chroot /Debian
I odpala chroota automatycznie.... :)
jak czegoś brakuje, lub nie trzeba, poradzisz sobie. ;)
Pozdro
;-)
Ostatnio edytowany przez Jacekalex (2013-01-10 22:39:28)
Offline
Zakładając ,ze oba systemy są na jednej maszynie..
Zakładam ,że partycja główna debiana to [b]/dev/sda5[/b]
Będąc na ubuntu tworzysz sobie katalog gdzie zamontujesz debiana
mkdir /mnt/lin
nazwa i miejsce dowolne ,tylko by malo pisania bylo
Montujesz partycję z debianem
mount /dev/sda5 /mnt/lin -rw
Montujesz katalog proc
mount none -t proc /mnt/lin/proc
Montujesz katalog /dev
mount -o bind /dev /mnt/lin/dev
Montujesz katalog /sys
mount -o bind /sys /mnt/lin/sys
Kopiujesz plik /etc/resolv.conf z ubuntu na debiana aby sieć na nim działała
cp /etc/resolv.conf /mnt/lin/etc
Chrootujesz się
chroot /mnt/lin /bin/bash
Już możesz działać na debianie :)
Np
aptitude update && aptitude install wicd-gtk
Robisz to wszystko z konta roota czyli w ubuntu najlepiej przez
sudo su
i z taka sama musi być architektura systemów.
Edit
W kilku pisaliśmy równocześnie :)
Offline
Można to w sumie do FAQ wrzucić. Tylko którą wersję? :D
Offline
Me napisał najszybszą wersję:
time debroot
/dev/sda7 /Debian ext4 rw,noatime,data=ordered 0 0
devtmpfs /Debian/dev devtmpfs rw,relatime,size=2020380k,nr_inodes=505095,mode=755 0 0
/proc /Debian/proc proc rw,relatime 0 0
tmpfs /Debian/var/tmp tmpfs rw,mand,noatime 0 0
tmpfs /Debian/tmp tmpfs rw,mand,noatime 0 0
tmpfs /Debian/var/run tmpfs rw,mand,noatime 0 0
tmpfs /Debian/var/run tmpfs rw,mand,noatime 0 0
Squeeze 23:09:44 /
[b]root # cat /etc/debian_version ; exit[/b]
wheezy/sid
exit
[b]real 0m1.348s[/b]
user 0m0.013s
sys 0m0.024s[/quote]
Do tego małe udogodnienia, niebezpieczne, ale wygodne:Kod:
user ~> sudo -l | grep debroot (root) NOPASSWD: /usr/local/bin/debrootoraz:
Kod:
user ~> alias | grep debroot alias debroot='sudo /usr/local/bin/debroot'Pozdrawiam
;-)Ostatnio edytowany przez Jacekalex (2013-01-10 23:17:36)
W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem para bellum ;) | Pozdrawiam :)
Offline
Chłopaki bardzo dziękuje. [b]ArnVaker[/b] dobrze napisał, że do [b]FAQ[/b] można to wrzucić.
Offline
Jeśli jeszcze nikt nie pisze to moge napisać... I tak miałem to zrobić, ale zapomniałem co to miało być... ;)
Offline
Jeśli jeszcze nikt nie pisze? Masz przecież wyżej kilka wersji gotowych. :P Moja nawet wisi w szkicach: [url]dug.net.pl/tekst/195/[/url]. ;)
Offline
No bardzo ładne :) Tylko, odhacz szkic i jest git ;)
Offline
Tamten szkic to generalnie czego innego dotyczy, ale jest już podobny art na portalu. Po prostu tam akurat pisałem też jak się chrootnąć.
Offline
Czy są jakieś istotne różnice pomiędzy tymi różnymi składniami mount? Jest jakaś "słuszniejsza" od pozostałych?
Np co do /proc, Arn pisze :
mount -t proc proc /mnt/debian/proc
Ilin:
mount none -t proc /mnt/debian/proc
Jaka jest różnica pomiędzy proc a none?
Spotkałem się również z:
mount -o bind /proc /mnt/debian/proc
Tak też jest poprawnie? Bo ten zapis raczej jest stosowany do montowania /dev i /sys.
No i właśnie jeżeli chodzi o /sys:
Arn:
mount -t sysfs sysfs /mnt/debian/sys
Ilin:
mount -o bind /sys /mnt/debian/sys
gentoo handbook:
mount --rbind /sys /mnt/debian/sys
No i /dev:
Arn oprócz:
mount -o bind /dev /mnt/debian/dev
daje również:
mount -o bind /dev/pts /mnt/debian/dev/pts
Czy to oddzielne montowanie /dev/pts jest konieczne?
Gentoo Handbook natomiast podaje:
mount --rbind /dev /mnt/debian/dev
Czy dobrze rozumiem, że użycie --rbind zastępuje właśnie to powyższe podwójne montowanie /dev/ i /dev/pts
Offline
Ja tam wszystko montuje:
# mount -o bind /proc /mnt/root/proc # mount -o bind /sys /mnt/root/sys # mount -o bind /dev /mnt/root/dev # mount -o bind /dev/pts /mnt/root/dev/pts
Różnica między --bind i --rbind
-B, --bind --rbind
Montuje ponownie poddrzewo w innym miejscu (tak, że jego zawartość jest dostępna w obu miejscach). Patrz wyżej.
-R, --rbind
Montuje ponownie poddrzewo wraz ze wszystkimi ewentualnymi montowaniami znajdującymi się poniżej, w innym miejscu (tak, że jego zawartość jest dostępna w obu miejscach). Patrz wyżej.[/quote]
Nigdy nie widziałem by w powyższych 4 katalogach było coś montowane (przynajmniej jeśli chodzi o live cd), temu --rbind raczej tutaj nie znajduje zastosowania.
Parametr -t:-t, --types typ_systemu_plików
Argument występujący po -t jest używany do wskazania rodzaju systemu plików.
......
Bez podania opcji -t lub gdy podany jest typ auto, mount postara się odgadnąć właściwy typ. Mount używa biblioteki blkid do tego celu; jeśli nie zwróci to niczego, co wygląda znajomo, mount postara się odczytać plik /etc/filesystems lub, jeśli on nie istnieje /proc/filesystems. Wszystkie wypisane tam typy zostaną wypróbowane, z wyjątkiem tych oznaczonych jako "nodev" (np. devpts, proc i nfs). Jeśli /etc/filesystems kończy się wierszem z pojedynczą *, mount odczyta później plik /proc/filesystems.[/quote]
oraz --bind vs. -o bindJeśli bieżący system nie posiada pliku /etc/mtab lub jeśli jawnie zdefiniowano źródło i przeznaczenie do polecenia ponownego montowania (a więc mount(8) nie odczyta /etc/mtab), konieczne jest użycia flagi (lub opcji) bind również do poleceń ponownego montowania. Przykładowo:
mount --bind stary-katalog nowy-katalog
mount -o remount,ro,bind stary-katalog nowy-katalog[/quote]
Sam się kiedyś zastanawiałem czy te różnice w poleceniach przy tworzeniu środowiska chroot się czymś różnią i na coś wpływają. Ale wychodzi na to, że w większości wypadków się niczym nie różnią i np. przy chroot z live cd można bez problemowo użyć prostego podpięcia starego katalogu w nowe miejsce (-o mount stary nowy) i tyle. xDOffline
Dzien dobry.
Zaczne od poczatku. Ze wzgledu na "wygodnictwo" zainstalowalem narzedzie pamusb wedlug tego http://forums.debian.net/viewtopic.php?f=16&t=110813 .
Jednak zrobilem chyba cos nie tak bo narzedzie nie dziala (jestem laikiem) . Z pamieci usb moja corcia usunęła plik konfiguracyjny pam.....cos tam .
Ja natomiast nie odinstalowalem narzedzia pamusb , tylko z katalogu /home usunąłem recznie pliki i katalogi z nazwą pam....cos tam .
Po probie ponownego uruchomienia komputera i wybraniu w grubie debiana system nie wstaje! Tzn pojawia sie czarne okno z migajacym kursorem.
Obok debiana mam tez zainstalowaneg ubuntu . Chcialem zrobic chroot z poziomu ubuntu , robilem to wedlug sposobow ArnVakera i Ilina . W jednym jak i w drugim przypadku w terminalu pojawia sie "chroot: failed to run command ‘/bin/bash’: No such file or directory"
Jak moge to naprawic?!
......nie jestem biegly" w systemach linux:)
Ostatnio edytowany przez bass (2014-08-31 13:41:35)
Offline
[quote=bass]Chcialem zrobic chroot z poziomu ubuntu , robilem to wedlug sposobow ArnVakera i Ilina .[/quote]
Czyli jak?
Zamontuj partycję z [b]Debian[/b]em do [b]/mnt/debian[/b], a potem:
mount -o bind /dev /mnt/debian/dev; mount -o bind /proc /mnt/debian/proc; mount -o bind /sys /mnt/debian/sys; chroot /mnt/debian
Z poziomu [b]root[/b]'a. To musi zadziałać.
Offline
Robilem to tak :
root@martyna-desktop:/home/martyna# mkdir /mnt/lin
root@martyna-desktop:/home/martyna# mount /dev/sda5 /mnt/lin -rw
/dev/sda5 wygląda na przestrzeń wymiany - nie zamontowano
mount: trzeba określić system plików
root@martyna-desktop:/home/martyna# mount /dev/sda3 /mnt/lin -rw
root@martyna-desktop:/home/martyna# mount none -t proc /mnt/lin/proc
root@martyna-desktop:/home/martyna# mount -o bind /dev /mnt/lin/dev
root@martyna-desktop:/home/martyna# mount -o bind /sys /mnt/lin/sys
root@martyna-desktop:/home/martyna# cp /etc/resolv.conf /mnt/lin/etc
root@martyna-desktop:/home/martyna# chroot /mnt/lin /bin/bash
chroot: failed to run command ‘/bin/bash’: No such file or directory
Offline
root@martyna-desktop:/home/martyna# mount -o bind /dev /mnt/lin/dev root@martyna-desktop:/home/martyna# mount -o bind /proc /mnt/lin/proc root@martyna-desktop:/home/martyna# mount -o bind /sys /mnt/lin/sys root@martyna-desktop:/home/martyna# chroot /mnt/lin chroot: failed to run command ‘/bin/bash’: No such file or directory
Nie dziala
....debian jest zamontowany w /mnt/lin
mount: /dev/sda3 jest już zamontowany lub /mnt/lin jest zajęty mount: według mtaba /dev/sda3 jest już zamontowany w /mnt/lin
Ostatnio edytowany przez bass (2014-08-31 13:59:36)
Offline
Czyżbyś nie miał basha ?
Pokaż
ls /mnt/lin/bin | grep bash
Architektury systemów się zgadzają ?
Offline
root@martyna-desktop:/home/martyna# ls /mnt/lin/bin | grep bash ls: nie ma dostępu do /mnt/lin/bin: Nie ma takiego pliku ani katalogu
....architektury sie zgadzaja
Ostatnio edytowany przez bass (2014-08-31 14:12:13)
Offline
Pokaż
ls /mnt/lin
Offline
root@martyna-desktop:/home/martyna# ls /mnt/lin dev etc proc sys
Offline
Tam się nie ma co chrootować tylko system od nowa zainstalować.
Za duzo wykasowałeś :)
ls / bin dev home lib lost+found mnt proc run srv tmp var boot etc initrd.img lib64 media opt root sbin sys usr vmlinuz
Pokaż jeszcze
fdisk -l
może masz to na róznych partycjach.
Offline
Urządzenie Rozruch Początek Koniec Bloków ID System /dev/sda1 2048 240089087 120043520 83 Linux /dev/sda2 482107390 488394751 3143681 5 Rozszerzona /dev/sda3 * 240089088 282683391 21297152 83 Linux /dev/sda4 282683392 482105343 99710976 83 Linux /dev/sda5 482107392 488394751 3143680 82 Linux swap / Solaris
.....o masakra, czyzby reinstalka?
system jest na sda3 natomiast /home na sda4
Ostatnio edytowany przez bass (2014-08-31 14:18:53)
Offline
Jeszcze
cat /mnt/lin/etc/fstab
Offline
Time (s) | Query |
---|---|
0.00009 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00091 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='18.218.190.118' WHERE u.id=1 |
0.00089 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '18.218.190.118', 1732504433) |
0.00042 | SELECT * FROM punbb_online WHERE logged<1732504133 |
0.00068 | SELECT topic_id FROM punbb_posts WHERE id=274369 |
0.00167 | SELECT id FROM punbb_posts WHERE topic_id=22678 ORDER BY posted |
0.00064 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=22678 AND t.moved_to IS NULL |
0.00006 | SELECT search_for, replace_with FROM punbb_censoring |
0.00107 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=22678 ORDER BY p.id LIMIT 0,25 |
0.00085 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=22678 |
Total query time: 0.00732 s |