Nieuws:

Welkom, Gast. Alsjeblieft inloggen of registreren.
Heb je de activerings-mail niet ontvangen?

Auteur Topic: [Ogelost] Lijst van geinstalleerde packages maken vanuit live-cd en terugzetten.  (gelezen 1093 keer)

Hee allemaal

Vanmorgen is er een HD 'gecrasched' van mijn desktop.
Ik kan het grootste deel van de schijf nog benaderen meer er niet meer van booten.
Heb ik van alle data gelukkig een backup, maar niet van de lijst met geinstalleerde software.

Weet iemand hoe ik met een liveCD een lijst kan maken van alle packages die waren geinstalleerd?
« Laatst bewerkt op: 2011/05/10, 12:41:17 door Erik Krom »

Offline Bloom

  • Lid
Re: Lijst van geinstalleerde packages maken vanuit live-cd
« Reactie #1 Gepost op: 2011/05/07, 19:44:50 »
Je moet vanuit de livecd een chroot doen naar de geïnstalleerde Ubuntu. Let wel: dit werkt alleen als er voldoende van het filesystem OK is om de benodigde bestanden te lezen! Maak bij voorkeur eerst een image van het geïnstalleerde systeem met CloneZilla of zo. Als de partitie met de geïnstalleerde Ubuntu corrupt is, probeer die dan eerst te herstellen. Kies System/Management/Disk Utility en klik op de harde schijf en kies dan Controleren en eventueel Repareren.
Als het volume niet hersteld kan worden, is het onwaarschijnlijk dat je er nog veel vanaf kunt halen.

Open vanaf de livecd een terminalsessie en tik:
sudo -i
mkdir /mnt/hdd
mount /dev/sda1 /mnt/hdd
mount --bind /dev/ /mnt/hdd/dev
mount --bind /dev/pts /mnt/hdd/dev/pts
mount -t proc none /mnt/hdd/proc
mount -t sysfs none /mnt/hdd/sys
chroot /mnt/hdd
En hierboven vervang je /dev/sda1 natuurlijk door de correcte identificatie van de startschijf van Ubuntu. Je kunt die eventueel opvragen via sudo fdisk -l. 'sda1' is voor de eerste harde schijf en de eerste partitie daarop.
Na uitvoeren van deze instructies staat de livecd ge-chroot op de harde schijf en gebruikt dus de configuratiebestanden van de op de harde schijf geïnstalleerde Ubuntu. Nu kunnen we een lijst maken van alle geïnstalleerde pakketten. Zorg dat er een usb-media insteekt waarop je het resultaat kan wegschrijven. Ik veronderstel hier even dat dit usb-medium gekoppeld is aan /media/usbmedium. Vul ook hier weer de juiste naam in.

1. Kopieer de inhoud van /home naar het usb-medium:
mkdir /media/usbmedium/BUhome
rsync -vau /home/ /media/usbmedium/BUhome/

2. Vergaar info geïnstalleerde pakketten:
dpkg --get-selections | grep -v 'deinstall'| awk '{print $1}' >/media/usbmedium/mijnpakketten.txt
Reboot de live-cd, verwijder het usb-medium met de back-up en herinstalleer Ubuntu op de harde schijf. Je kunt eventueel een mini-iso gebruiken voor de installatie zodat je alleen een startbaar terminalsessiesysteem krijgt zonder verder iets geïnstalleerd.
Maar de volledige desktop installeren kan natuurlijk ook.
Steek het usb-medium opnieuw in de pc. Ik ga er weer vanuit, dat het usb-medium weer aangekoppeld werd via /media/usbmedium. Indien dat niet zo is, vervang dit dan door de juiste naam.

1. Terugzetten van je home-directory:
sudo rsync -vau /media/usbmedium/BUhome/ /home/
2. Terugzetten van alle geïnstalleerde pakketten (wat al geïnstalleerd was zal hij negeren):
cat /media/usbmedium/mijnpakketten.txt | xargs sudo apt-get -y install
Klaar!

Re: Lijst van geinstalleerde packages maken vanuit live-cd
« Reactie #2 Gepost op: 2011/05/07, 21:57:49 »
Als dat niet lukt is kan je ook vanuit de logs nog een lijst maken van geïnstalleerde pakketten.

Mount de beschadigde schijf vanaf de live cd.

Dan
cp -r /aankoppelpunt-van-kapotte-schijf/var/log/apt ./
cd apt
gzip -dc `ls -r history*.gz`|grep 'Install'>install.log
cat history.log|grep 'Install'>>install.log
cat install.log|cut -d: -f2|grep -o -e ' [^()]* '|sort|uniq -u>install.txt
# je hebt nu de geïnstalleerde pakketten in een lijstje
gzip -dc `ls -r history*.gz`|grep 'Remove'>remove.log
cat history.log|grep 'Remove'>>remove.log
cat remove.log|cut -d: -f2|grep -o -e ' [^()]* '|sort|uniq -u>remove.txt
# je hebt nu de verwijderde pakketten in een lijstje
comm install.txt remove.txt|cut -f1|sed '/^$/d'>packages.txt
#Je hebt nu een lijstje (packages.txt) met pakketten die ooit geïnstalleerd zijn, en nooit zijn verwijderd

Let wel, als je pakketten hebt geïnstalleerd, vervolgens weer verwijderd, en weer geïnstalleerd, dan werkt dit niet. Dergelijke pakketten zijn namelijk ooit verwijderd, en dan staan ze niet in packages.txt. Deze pakketten mis je dan. Je kan in dat geval wellicht het best install.txt gebruiken en met de hand daar pakketten uit verwijderen uit de lijst remove.txt die ook echt verwijderd moeten worden.

edit: Ik gebruik hierbij wel de apt log bedenk ik me nu, dus als je pakketten met dpkg hebt geïnstalleerd, dan mis je die ook. Mocht dat zo zijn, en het lukt niet anders, laat het even weten, dan kijk ik wat er te bakken is met dpkg log bestanden.
« Laatst bewerkt op: 2011/05/07, 22:13:31 door Thomas de Graaff »

Re: Lijst van geinstalleerde packages maken vanuit live-cd
« Reactie #3 Gepost op: 2011/05/07, 22:13:51 »
Dank julie.
@Bloom: het heeft gewerkt.
@Thomas: Jouw methode is gelukkig niet nodig. En ja, er zijn paketen meerdere keren geïnstalleerd en verwijderd. Maar evengoed bedankt.

De packagelijst is gemaakt.
De overige back-ups heeft back in time netjes bijgehouden en toevallig kort geleden ook de configuratie files gaan laten bijhouden. =D

Zover ik merk kan ik bij alle bestanden.
Het lijkt er op dat vooral de bootsector stuk is.
Dan hoor ik hem duidelijk klikken.

Herstellen met diskutility gaat wat moeilijker.
Ik heb twee 500GB schijven in RAID0 staan.
Aangegeven wordt dat de 1e van die twee niet goed meer is.
Volgens de SMART data zijn er 27 (intussen) 31 bad sectors.
De Self-test mislukt al snel. Ook weer met een klik.

De RAID0 heb ik verdeelde in twee partities. een grote /home partitie en een kleine / partitie.
Als ik de 'Controleer en repareer' uitvoer doe bij de twee partities krijg ik het bericht dat er niets aan de hand is hoewel deze (naar mijn idee) wel erg snel gaan.
Minder dan 2 seconden.(klopt dat? :|)


Verder binnenkort een nieuwe hdd kopen om die weer als aparte /home te kunnen gebruiken.
Maar tot die tijd met de ene 500GB schijf maar ff spelen, mooie kans om 11.04 te installeren en kijken hoe unity is. ;)
« Laatst bewerkt op: 2011/05/07, 22:23:01 door Erik Krom »

Re: [Opgelost] Lijst van geinstalleerde packages maken vanuit live-cd
« Reactie #4 Gepost op: 2011/05/09, 16:06:51 »
Nieuwe hdd binnen en bezig met instellen.
Echter commando om alle packages te installeren wilt niet werken.
Hij leest alles wat nodig is, geeft aan hoeveel ruimt het zal gaan gebruiken.
Maar bij de vraag of ik wil doorgaan staat opeens 'afbreken' als antwoord en stopt het.

Laadste lijn:
Wilt u doorgaan [J/n]? Afbreken.
xxx@xxx:~&

Kennerlijk gaat er ergens iets niet goed.

Offline Bloom

  • Lid
Voeg in de regel om pakketten te installeren de parameter '-y' toe:
cat /media/usbmedium/mijnpakketten.txt | xargs sudo apt-get -y installDat zou het probleem moeten oplossen.

Computer is nu de back-up van de home map aan het terughalen.
Dat duurt nog een paar uur.

Het zou kunnen dat het stuk loopt op de ppa's?
Deze zijn waarschijnlijk niet goed ingesteld.
Krijg wat meldingen over dat een aantal key's niet zijn te controleren.
Dat was eerst allen bij VirtualBox.

Ik ga de ppa's opnieuw van de sites halen en in de softwarepakketten zetten.
Misschien dat het helpt.

Ik hoop het vanavond nog te kunnen doen.
« Laatst bewerkt op: 2011/05/09, 19:16:10 door Erik Krom »

Gelukt  :D

Computer is weer in orde.

Die -y deed het hem.

Alles is weer helemaal terug.
(Helaas zelfs ook de dingen die juist minder soepel werken, maar dat is een ander project. ;) )
Dit scheelt mij een aantal uur aan uitzoeken hoe ik sommige dingen ook alweer had ingesteld.

Erg bedankt voor de hulp.