<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-1033621027291651870</id><updated>2011-07-07T16:19:32.994-07:00</updated><category term='linux'/><category term='debian'/><category term='live-initramfs'/><category term='informatyka'/><category term='wstęp'/><category term='squashfs'/><category term='grub2'/><category term='livecd'/><category term='debootstrap'/><category term='initramfs'/><title type='text'>Pingwin Pawła</title><subtitle type='html'>Czyli rzecz o hodowli ptaka komputerowego</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://pingwin-pawla.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1033621027291651870/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://pingwin-pawla.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Paweł Mateja</name><uri>http://www.blogger.com/profile/13448641363804461093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>2</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1033621027291651870.post-372985690326940200</id><published>2010-02-05T11:24:00.000-08:00</published><updated>2010-02-06T11:27:14.914-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='live-initramfs'/><category scheme='http://www.blogger.com/atom/ns#' term='initramfs'/><category scheme='http://www.blogger.com/atom/ns#' term='debian'/><category scheme='http://www.blogger.com/atom/ns#' term='squashfs'/><category scheme='http://www.blogger.com/atom/ns#' term='livecd'/><category scheme='http://www.blogger.com/atom/ns#' term='debootstrap'/><category scheme='http://www.blogger.com/atom/ns#' term='grub2'/><title type='text'>Debian LiveCD z Grub2</title><content type='html'>Szukałem i szukałem, ale jakoś nie udało mi się znaleźć w Internecie jednego, spójnego w miarę przepisu na stworzenie obrazu LiveCD Debiana z GRUBem2 w roli boot managera. Zwyczajowo startowania systemu stosowany jest &lt;span style="font-weight: bold;"&gt;SYSLINUX&lt;/span&gt;, explicite &lt;span style="font-weight: bold;"&gt;ISOLINUX&lt;/span&gt;, ale przecież mając do dyspozycji nowe wydanie GRUBa, nie można go nie użyć.&lt;br /&gt;&lt;br /&gt;Dlaczego niby? Ano dlatego choćby, że to rzecz świeża, potężna, pozwalająca nie tylko na prostackie startowanie systemów, ale też choćby pisanie skryptów umożliwiających elastyczne projektowanie ekranu bootowania.&lt;br /&gt;&lt;br /&gt;Oczywiście, istnieje kilka gotowych już rozwiązań, takich jak &lt;span style="font-weight: bold;"&gt;DebianLive&lt;/span&gt;, czyli oficjalny debianowy kreator obrazów, &lt;span style="font-weight: bold;"&gt;BootCD&lt;/span&gt; i inne. Mają one jednak wszystkie cechy, które niekoniecznie muszą każdego kontentować. Ot, choćby &lt;span style="font-weight: bold;"&gt;live-helper&lt;/span&gt; z pakietu &lt;span style="font-weight: bold;"&gt;DebianLive&lt;/span&gt;, to potężne narzędzie, pozwalające na spory stopień kustomizacji budowanej przez siebie dystrybucji. Wada? Tworzenie odbywa się przez edycję zbioru kilku plików konfiguracyjnych, których charakterystyk trzeba po prostu się nauczyć. O ile stworzenie w miarę &lt;span style="font-style: italic;"&gt;klasycznego&lt;/span&gt;, niespecjalnie zmodyfikowanego obrazu nie stanowi większego problemu, to już jego dostosowanie do wymagań twórcy zmusza do żmudnego ślęczenia nad dokumentacją projektu. Ja dałem sobie z tym spokój.&lt;br /&gt;&lt;br /&gt;Proponuję inne rozwiązanie:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.digipedia.pl/man/doc/view/debootstrap.8.html"&gt;debootstrap&lt;/a&gt;&lt;/li&gt;&lt;li&gt;chroot&lt;/li&gt;&lt;li&gt;mkisofs&lt;/li&gt;&lt;li&gt;squashfs&lt;br /&gt;&lt;/li&gt;&lt;li&gt;i trochę pracy własnej, ale wcale nie tak dużo&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a name='more'&gt;&lt;/a&gt;Pierwsze z tych narzędzi tak naprawdę zrobi na nas większość roboty. &lt;span style="font-weight: bold;"&gt;Debootstrap&lt;/span&gt; instaluje w podanej ścieżce system plików Debiana o wskazanej wersji. Wszystko jednym poleceniem. Najpierw jednak wypada przygotować miejsce do pracy:&lt;br /&gt;&lt;pre style="-moz-background-inline-policy: continuous; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  mkdir -p ~/livecd/{rootfs,bootfs,outfs} &amp;amp;&amp;amp; cd ~/livecd/  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;System plików zainstalujemy w folderze &lt;span style="font-weight: bold;"&gt;rootfs&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;bootfs&lt;/span&gt; będzie potrzebny do przechowania &lt;span style="font-weight: bold;"&gt;GRUBa2&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;outfs&lt;/span&gt; to miejsce na gotową instalację.&lt;br /&gt;&lt;pre style="-moz-background-inline-policy: continuous; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  debootstrap --variant=minbase --verboose lenny rootfs  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Więc wybrany został tryb z &lt;span style="font-style: italic;"&gt;głośnym wyjściem&lt;/span&gt;, instalujący &lt;span style="font-weight: bold;"&gt;Lenny&lt;/span&gt;'ego w wersji minimalnej do katalogu rootfs. Wszystko jasne, tylko czekać teraz aż &lt;span style="font-weight: bold;"&gt;deb&lt;/span&gt;y zostaną pościągane i zainstalowane.&lt;br /&gt;&lt;br /&gt;Mamy więc Debiana. Brakuje jeszcze &lt;span style="font-weight: bold;"&gt;jądra&lt;/span&gt; i kilku ważnych modułów, &lt;span style="font-weight: bold;"&gt;bootloadera&lt;/span&gt; oraz obrazu &lt;span style="font-weight: bold;"&gt;initramfs&lt;/span&gt; do wystartowania systemu.&lt;br /&gt;&lt;br /&gt;Polecenie &lt;span style="font-weight: bold;"&gt; chroot&lt;/span&gt; przyda się teraz do modyfikacji gotowej dystrybucji. Nie będzie żadnych rewelacji. Wpisujemy:&lt;br /&gt;&lt;pre style="-moz-background-inline-policy: continuous; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  chroot rootfs  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;I dalej działamy za pomocą poleceń &lt;span style="font-weight: bold;"&gt;apt-get&lt;/span&gt;, &lt;span style="font-weight: bold;"&gt;passwd&lt;/span&gt; i co jeszcze zechcemy. Ale zaraz, jeszcze proponuję na chwilę opuścić środowisko &lt;span style="font-weight: bold;"&gt;chroota&lt;/span&gt; i wpisać:&lt;br /&gt;&lt;pre style="background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  tar -czvf _back_rootfs.tar.gz rootfs  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Nigdy nie wiadomo, co możemy zepsuć przy kolejnych modyfikacjach, więc lepiej zrobić kopię, niż później raz jeszcze ściągać pakiety z repozytoriów.&lt;br /&gt;&lt;pre style="-moz-background-inline-policy: continuous; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  mount -o bind /dev rootfs/dev  &lt;br /&gt;2:  mount -o bind /proc rootfs/proc  &lt;br /&gt;3:  mount -o sys /proc rootfs/proc  &lt;br /&gt;4:  chroot rootfs  &lt;br /&gt;5:  apt-get update  &lt;br /&gt;6:  apt-get install linux-image-2.6.686 aufs-modules-2.6-686 &lt;/code&gt;&lt;code style="color: black; word-wrap: normal;"&gt;squashfs-modules-2.6-686 live-initramfs locales &lt;/code&gt;&lt;/pre&gt;Do tego dojdzie sporo zależności - w końcu wybraliśmy instalację minimalną. Teraz trzeba za to odpokutować.&lt;br /&gt;&lt;pre style="background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  dpkg-reconfigure locales  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Wybieramy oczywiście &lt;span style="font-weight: bold;"&gt;pl_PL&lt;/span&gt;, numer 321.&lt;br /&gt;Na dobry początek mamy już &lt;span style="font-weight: bold;"&gt;kernel&lt;/span&gt;a, mamy obraz &lt;span style="font-weight: bold;"&gt;initramfs&lt;/span&gt;. Warto sprawdzić, czy zostały utworzone symboliczne linki w katalogu głównym. Powinny ułatwić późniejsze zabawy z &lt;span style="font-weight: bold;"&gt;bootloader&lt;/span&gt;em&lt;br /&gt;&lt;pre style="-moz-background-inline-policy: continuous; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  apt-get install grub2  &lt;br /&gt;2:  cp /usr/lib/grub2/i386-pc/* /boot/grub  &lt;br /&gt;3:  &lt;/code&gt;&lt;code style="color: black; word-wrap: normal;"&gt;mkinitramfs -o /boot/initrd.img  &lt;/code&gt;&lt;/pre&gt;I GRUB2 został finalnie zainstalowany, zastępując starego GRUBa. Następnie opuszczamy chroota i kopiujemy zawartość rootfs/boot do bootfs/boot&lt;br /&gt;&lt;pre style="-moz-background-inline-policy: continuous; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  cp -r rootfs/boot outfs  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Przyszedł czas, by zająć się kompresją systemu plików przy pomocy squashfs tools. Więc zacząć należy od ich instalacji:&lt;code style="color: black; word-wrap: normal;"&gt;&amp;nbsp;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre style="background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  apt-get install squashfs-tools    &lt;br /&gt;2:  umount rootfs{dev,proc,sys}    &lt;br /&gt;3:  mksquashfs rootfs/* root.squashfs -all-root    &lt;br /&gt;4:  mkdir outfs/live    &lt;br /&gt;5:  ln root.squashfs outfs/live    &lt;br /&gt;6:  grub-mkrescue --image-type=cdrom boot.iso    &lt;br /&gt;7:  mount boot.iso bootfs -t iso9660 -o=/dev/loop0    &lt;br /&gt;8:  cp bootfs/grub/* outfs/grub/    &lt;br /&gt;9:  mkisofs -R -b boot/grub/grub_eltorito -no-emul-boot -boot-load-size 4 -boot-info-table -o livecd.iso outfs  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;I to by było na tyle. LiveCD jest gotowe. Łatwo można je przetestować w VirtualBoxie, albo szybciej, w quemu:&lt;br /&gt;&lt;pre style="background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  qemu -cdrom livecd.iso  &lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;Co może zaskoczyć, to fakt, że po odpaleniu płytki nie wyświetli się żadne ładne menu, tylko konsola gruba. Wpisujemy w niej:&lt;br /&gt;&lt;pre style="-moz-background-inline-policy: continuous; background: url(&amp;quot;http://2.bp.blogspot.com/_z5ltvMQPaa8/SjJXr_U2YBI/AAAAAAAAAAM/46OqEP32CJ8/s320/codebg.gif&amp;quot;) repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"&gt;&lt;code style="color: black; word-wrap: normal;"&gt;1:  grub&amp;gt; linux /boot/vmlinuzXXX BOOT=live  &lt;br /&gt;2:  &lt;/code&gt;&lt;code style="color: black; word-wrap: normal;"&gt;grub&amp;gt;&lt;/code&gt;&lt;code style="color: black; word-wrap: normal;"&gt; initrd /boot/initrd.img  &lt;br /&gt;3:  &lt;/code&gt;&lt;code style="color: black; word-wrap: normal;"&gt;grub&amp;gt;&lt;/code&gt;&lt;code style="color: black; word-wrap: normal;"&gt; boot  &lt;/code&gt;&lt;/pre&gt;Nie ma przeciwwskazań, by stworzyć sobie ładne menu. Ale to już temat na następny artykuł.&lt;br /&gt;&lt;br /&gt;Oczywiście, zwracam uwagę, że to co powyżej przedstawiłem to sposób nieoptymalny. No bo jądro lepiej byłoby samemu skompilować, a i obraz initramfs zbudować można ręcznie. Dlatego przedstawiłem tylko szkic. Cała reszta zależy już od inwencji własnej. I właśnie tu zaczyna się część najlepsza.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1033621027291651870-372985690326940200?l=pingwin-pawla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pingwin-pawla.blogspot.com/feeds/372985690326940200/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://pingwin-pawla.blogspot.com/2010/02/debian-livecd-z-grub2.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1033621027291651870/posts/default/372985690326940200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1033621027291651870/posts/default/372985690326940200'/><link rel='alternate' type='text/html' href='http://pingwin-pawla.blogspot.com/2010/02/debian-livecd-z-grub2.html' title='Debian LiveCD z Grub2'/><author><name>Paweł Mateja</name><uri>http://www.blogger.com/profile/13448641363804461093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1033621027291651870.post-4252361789204572239</id><published>2010-02-04T12:39:00.000-08:00</published><updated>2010-02-04T13:06:52.757-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='informatyka'/><category scheme='http://www.blogger.com/atom/ns#' term='wstęp'/><title type='text'>Na dobry początek</title><content type='html'>Jednego bloga już mam. Poświęcony jest literaturze grozy i rzeczom jej podobnym. Znaleźć można go pod adresem &lt;a href="http://www.carpenoctem.pl/wordpress/pmateja"&gt;www.carpenoctem.pl/wordpress/pmateja&lt;/a&gt;. Fajny jest, pisuję na min rzadko, ale z ochotą. Tylko czasu ostatnio doń nie mam, ni głowy. Po co więc kolejny? Żeby pisać o rzeczach, które chcę, tudzież muszę zapamiętać, a które łączą się raczej z moimi zainteresowaniami ukierunkowanymi przez studia. To jest Linuxem, programowaniem w &lt;span style="font-weight: bold;"&gt;Pythonie&lt;/span&gt; i podobnymi rzeczami. Jako, że jestem w trakcie tworzenia pracy magisterskiej dotyczącej zarządzaniem linuksowymi hostami w sieci lokalnej, mam nadzieję zamieścić tu kilka ciekawostek spłodzonych jako produkty uboczne, albo po prostu od reszty pracy niezależne, a ciekawe.&lt;br /&gt;Nie jestem ani ekspertem, ani radykałem. Znam się na rzeczy na tyle, na ile jest mi ta wiedza potrzebna. Na co dzień działam na laptopie z &lt;span style="font-weight: bold;"&gt;Archlinuxem&lt;/span&gt;, powłoką &lt;span style="font-weight: bold;"&gt;zsh&lt;/span&gt; i menedżerem okien &lt;span style="font-weight: bold;"&gt;dwm&lt;/span&gt;. Boskie połączenie, polecam.&lt;br /&gt;A właściwie to głownie po to mam zamiar tu pisać, żeby mieć motywację do pisania magisterki. I po patosie.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1033621027291651870-4252361789204572239?l=pingwin-pawla.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://pingwin-pawla.blogspot.com/feeds/4252361789204572239/comments/default' title='Komentarze do posta'/><link rel='replies' type='text/html' href='http://pingwin-pawla.blogspot.com/2010/02/na-dobry-poczatek.html#comment-form' title='Komentarze (0)'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1033621027291651870/posts/default/4252361789204572239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1033621027291651870/posts/default/4252361789204572239'/><link rel='alternate' type='text/html' href='http://pingwin-pawla.blogspot.com/2010/02/na-dobry-poczatek.html' title='Na dobry początek'/><author><name>Paweł Mateja</name><uri>http://www.blogger.com/profile/13448641363804461093</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
