Vaak hebben we een systeem moeten repareren vanaf een LiveCD, en op een bepaald moment in het proces hebben we een tool gemist en wanneer we het willen installeren, vertelt het LiveCD OS ons dat er geen ruimte meer is en knoflook en water (om af te neuken en vast te houden).
Laten we het doen. We zullen de SystemRescueCD, die een redelijk uitgebreide Gentoo-gebaseerde omgeving biedt.
In ons voorbeeld (een Linux vanaf nul installeren volgens het Linux From Scratch-boek) missen we de Bison- en Makeinfo-programma's, dus gaan we een nieuwe ISO-image van deze schijf maken, maar met de nieuwe tools.
Hoewel een pakketbeheerder wordt gebruikt (zoals Debian's apt-get), wordt in plaats van pakketten te downloaden de broncode gedownload om deze op uw machine te compileren.
Voor het proces heb je een Linux-partitie nodig (bijvoorbeeld ext4) met minimaal 1.5G gratis, hoewel meer wordt aanbevolen. Als je niet met je partities wilt spelen, maak dan gebruik van een virtuele machine. Het is natuurlijk aan te raden dat de partitie meerdere optredens heeft, aangezien tijdens het compileren, installeren, synchroniseren van repositories ... tijdelijke ruimte nodig is; Ik raad aan om een 8G + 2G swappartitie te gebruiken (met 4G + 1G zou het voldoende moeten zijn, maar we kunnen je verzekeren dat als RAM / swap ontbreekt, het proces nog langzamer zal zijn).
Ervan uitgaande dat u een virtuele machine met een 10G-schijf hebt gemaakt, start u deze door hem te laten opstarten vanaf de nieuw gedownloade SystemRescueCd. Eenmaal binnen partitioneren we met fdisk (als je de grafische sessie hebt gestart, kun je dat doen met gparted, maar het doel van dit bericht is om het gebruik van basistools te leren). fdisk is een interactieve opdracht:
- met de optie "n" maken we een nieuwe partitie aan
- met de optie "t" veranderen we het type bestandssysteem dat in de partitie komt
- met de optie «w» schrijven we naar de schijf
- met de optie «q» vertrekken we zonder de wijzigingen te schrijven
Als we de "n" optie gebruiken, geeft het ons verschillende opties, de hele tijd zullen we de standaard gebruiken, behalve bij het instellen van de laatste sector in de eerste partitie, die we zullen moeten schrijven "+ 8G", waarmee we aan het programma aangeven dat we willen dat onze partitie 8GB bezet.
Bij het maken van de tweede partitie zullen we de standaardopties gebruiken, aangezien de rest van de ruimte bezet zal zijn. Om fdisk te vertellen dat de tweede partitie van het type swap zal zijn, gebruik je de "t" optie (de hexcode voor swap is 82). De interface ziet er als volgt uit:
% fdisk / dev / sda Commando (m voor hulp):
Als alles klaar is, gebruiken we de "w" optie om de wijzigingen naar schijf te schrijven en af te sluiten.
Nu is het tijd om de partities te formatteren. We beginnen met de swap om er direct gebruik van te kunnen maken:
% mkswap / dev / sda2% swapon / dev / sda2
We hebben de swappartitie al geformatteerd, en met het commando ruilen we zijn ermee begonnen. Nu formatteren we de eerste partitie in ext4:
% mkfs.ext4 /dev/sda1
We kunnen beginnen met het volgen van de stappen beschreven in http://www.sysresccd.org/Sysresccd-manual-en_How_to_personalize_SystemRescueCd, hier vertaal / beschrijf ik ze met een vreemde aantekening.
We mounten de partitie op zijn plaats (de LiveCD wordt al voorbereid geleverd met een map / mnt / custom waar de partitie waarin we de juiste wijzigingen zullen aanbrengen, moet worden gemount). Ook na het aankoppelen zullen we de bestanden van de schijf moeten extraheren, dit wordt bereikt met een script dat al is voorbereid. Het script duurt even (aangezien het honderden megabytes geheugen dumpt), als je wilt controleren of het echt werkt, ga dan naar een andere terminal (met bijvoorbeeld Alt + F4) en voer een df -h.
% mount / dev / sda2 / mnt / custom% / usr / sbin / sysresccd-aangepast extract
Als je nu naar binnen navigeert / mnt / custom / customcd, ziet u verschillende mappen. In / mnt / custom / customcd / files het rootbestandssysteem wordt gevonden. Nu is het tijd om het toekomstige nieuwe systeem te chroot. Hier ga ik de commando's plaatsen, voor meer informatie over chroot kun je zien deze tutorial heb ik een maand geleden geschreven
% mount -o bind / proc / mnt / custom / customcd / files / proc% mount -o bind / dev / mnt / custom / customcd / files / dev% mount -o bind / sys / mnt / custom / customcd / files / sys% chroot / mnt / custom / customcd / files / bin / bash # gcc-config $ (gcc-config -c)
We zitten al in het gechroot-systeem, dat het LiveCD-systeem zal zijn zodra we het opstarten. We zullen de ontbrekende pakketten (bison en texinfo) installeren met behulp van het commando te voorschijn komen (wie verzorgt het pakket van portage van gentoo).
Eerst synchroniseren we de portage-structuur (het equivalent van apt-get update)
# emerge-webrsync
OPMERKING: we gebruiken dit commando in plaats van "emerge –sync" omdat het sneller is, aangezien het een tar pack van het web downloadt. Deze stap is nodig, want als je niet tevoorschijn komt, zal het automatisch tevoorschijn komen –sync, wat het vertraagt.
Na het synchroniseren van de portage tree kunnen we doorgaan met het installeren van de pakketten:
# emerge sys-devel / bison # emerge sys-devel / texinfo
We laten chroot:# exit
We ontkoppelen "/ proc" zodat de nieuw geïnstalleerde pakketten worden opgeslagen in squashfs. We ontkoppelen ook "/ dev" en "/ sys" zodat we het later niet vergeten
% umount /mnt/custom/customcd/files/proc
% umount /mnt/custom/customcd/files/dev
% umount /mnt/custom/customcd/files/sys
Omdat we het nieuwe squashbestandssysteem al klaar hebben, maken we het met het volgende commando
% /usr/sbin/sysresccd-custom squashfs
Als we een bestand aan de ISO-afbeelding willen toevoegen maar we willen dat het buiten squashfs staat, moeten we het in de map «/ mnt / custom / customcd / isoroot» plaatsen
% cp -a my-files /mnt/custom/customcd/isoroot
Het glorieuze moment is aangebroken, we kunnen nu de nieuwe ISO-afbeelding genereren met ons aangepaste systeem!
% /usr/sbin/sysresccd-custom isogen my_srcd
"My_srcd" is de naam die we aan het volume geven, je mag het noemen zoals je wilt. De afbeelding wordt opgeslagen in «/ mnt / custom / customcd / isofile», daarnaast wordt er ook een .md5-bestand gegenereerd 🙂
Als u op een virtuele schijf werkt, blijft de cruciale stap: extraheer de ISO-afbeelding van het virtuele systeem. Er zijn verschillende manieren om dit te doen, ik zal een simpele uitleggen (in VirtualBox) om te voorkomen dat je "gasttoevoegingen" of iets dergelijks moet installeren.
We zullen de client gebruiken om het bestand via een ssh-tunnel te verkrijgen. Om dit te doen, moeten we eerst het gastsysteem configureren met een root-wachtwoord. De ssh-server start automatisch, we herstarten hem nog steeds voor het geval dat.
% passwd
% /etc/init.d/sshd restart
We moeten de port forwarding van de virtuele machine configureren. In VirtualBox gaat het als volgt:
- U hebt toegang tot de configuratie van de virtuele machine
- In de netwerksectie heb je al een adapter in NAT geconfigureerd
- Zoek naar de optie voor poortdoorschakeling
- U voegt een nieuwe regel toe, met de enige parameters "hostpoort" en "gastpoort"
- host = 3022 en guest = 22
Hiermee hebben we bereikt dat poort 3022 van onze pc 22 is van de virtuele machine. We starten de Filezilla-client:
- In de serverparameter schrijven we: sftp: // localhost
- In de gebruikersnaam parameter schrijven we: root
- In de wachtwoordparameter plaatsen we degene die we gebruiken in «passwd»
- In de poortparameter schrijven we: 3022
- Klik op «Snelle verbinding»
Als alles goed is gegaan, kunnen we naar links navigeren op onze pc en naar rechts in de virtuele machine. Het is voldoende om (in de virtuele machine) toegang te krijgen tot de map «/ mnt / custom / customcd / isofile» en de ISO-afbeelding naar de gewenste plaats op onze pc te slepen.
!! Gefeliciteerd !! Als alles goed is gegaan, heb je je ISO-image klaar met een aangepaste SystemRescueCD en klaar om op te starten vanaf een CD, USB ...
Wat een goede gids, ietwat ingewikkeld maar erg handig.
Goede bijdrage.
Dan met wat meer tijd, en zonder zoveel ongemak in de ogen, zal ik het grondig lezen. Het lijkt erg nuttig en interessant.
Hallo woqer, zeer goede post!
Ik werk al een aantal jaren bij LFS en ik heb mijn eigen iso gemaakt die je van dienst kan zijn, het heeft alles wat je nodig hebt om te compileren, aangezien het een LFS is. 😀 Ik hoop dat het nuttig voor je is
http://vegnux.org.ve/files/isos/neonatox-06.2rc6.linux-i686-xfce4.iso