Slipstreaming SP3 nel CD winXP: da linux!!

Area di discussione libera.

Moderatore: Staff

Regole del forum
1) Rispettare le idee altrui.
2) Evitare le offese dirette.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.

La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
Rispondi
Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Slipstreaming SP3 nel CD winXP: da linux!!

Messaggio da joe »

In rete ci sono parecchie guide che trattano l'argomento...
Tuttavia stavo cercando qualcosa di più terra terra. Mi spiego:

quelo che spiegano parecchie guide è di
1- copiare il contenuto del CD in una dir chiamata per esempio "$sp-slipstreamed"
2- estrarre il contenuto del service pack in un'altra dir "$sp3"
3- usare wine per far girare l'eseguibile update.exe presente nella seconda directory da qualche parte usando come target la prima directory
4- ricreare il CD

A me ciòche non piace di questa operazione è il punto 3, in quanto si tira in ballo l'eseguibile update.exe che non si sa bene cosa faccia. Mi sarebbe piaciuto capire cosa esattamente fa e riprodurne le operazioni manualmente, eventualmente scriptandole in un secondo tempo (capito il meccanismo insomma).

Tra i tanti links ne riporto uno un po' differente dagli altri, che mi resta meno chiaro: infatti non mi pare collegato direttamente allo slipstreaming di SP, ma da alcunicommenti sembra che alcuni ne abbiano preso spunto per integrare il Service Pack nel CD originale. Ecco il link:
http://linuxtuneup.blogspot.com/2006/01 ... linux.html

Spero ne sappiate più di me. Grazie in anticipo per gli eventuali chiarimenti e idee che vorrete aggiungere.

hashbang
Packager
Packager
Messaggi: 2034
Iscritto il: ven 4 giu 2010, 10:27

Re: Slipstreaming SP3 nel CD winXP: da linux!!

Messaggio da hashbang »

Hai provato a usare con wine il programma Autostreamer?

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Slipstreaming SP3 nel CD winXP: da linux!!

Messaggio da joe »

Eh no. Cioè per usare wine con autosreamer tanto vale usare update.exe sempre in wine. Io non volevo usare wine alla fine il SP non è altro che un file compresso e il suo contenuto si può estrarre (mi pare con cabextract) Poi il problema è come vengono inseriti i nuovi files nel vecchio CD. Cioè è iprocedimento di udate.exe che non conosco. Ed è quello a cui volevo sostituire una procedura fatta a mano.

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Slipstreaming SP3 nel CD winXP: da linux!!

Messaggio da joe »

Allora ho provato a seguire questa guida:
http://www.montanalinux.org/SlipstreamWithLinux.html

È tra quelle che descrivono il metodo più spartano che ho trovato. Per capirci qualcosa bisogna inevitabilmente scendere di livello.
In pratica la procedura prevede due directories: sorgente e destinazione.
La sorgente contiene il service pack estratto con cabextract. Infatti l'eseguibile che mette a disposizione MS è formalmente appunto un eseguibile ma di fatto può essere trattato come un'archivio comprezzo CAB.
La directory destinazione o target dovrebbe contentere i files presenti nel CD di XP.
Preparate quelle due dir, con wine si esegue il programma:
bash:~$ /$SORGENTE/I386/UPDATE.EXE /integrate Z:\\$TARGET

Ok, poi vi sono degli ulteriori passi necessari alla creazione di un CD funzionante (bootloader e altre cose).
A me invece in questo topic interessa capire cosa fà esattamente il comando sopracitato "UPDATE.EXE".
E siccome il suo sorgente ovviamente non è disponibile (o almeno così credo insomma) ho provato ad eseguire il comando e, a posteriori capire cosa è stato modificato della directory TARGET.

Quindi si tratta di andare a confrontare la directory TARGET aggiornata, con la directory SORGENTE (sp3 estratto), ma anche con la dir TARGET originaria. Quello che ho rilevato è sostanzialmente che la situazione finale è più comlpessa di quanto mi aspettassi, e simulare tutta l'operazione a mano potrebbe non essere così facile...
Se a ciò aggiungiamo che non posso ormai impiegare troppo per raggiungere lo scopo, penso proprio che mi arrenderò ed effettuerò lo slipstreaming sp3 con wine e pazienza.

Una sconfitta? Non necessariamente. Magari in futuro se qualcuno ha voglia interesse e competenza per capire meglio la situazione potrà partire da qui e concentrarsi solamente sull'operazione di slipstreaming con un operazione che di fatto credo possa vedersi come un tentativo di "reverse engignering".

Qualche nota:

0- alla preparazione delle due dir ho aggiunto anche la conversione di tutti i nomi dei file in maiuscolo utilzzando "convmv":
convmv -r --upper --notest TARGET/.
E idem per la SORGENTE, così da consentire a diff di non considerare diversi due file uguali ma aventi nome differente a causa del case.

1- Dopo aver effettuato lo slipstreaming ho controllato un po' quanti files sono stati aggiunti eliminati eggiornati intonsi.

Totali vacchia: 6110
Totali nuova: 6517
Eliminati: 93
Aggiunti: 417
Files identici: 3081
Files (binari) aggiornati: 1966

Per ottenere questo resoconto ho usato strumenti semplici: find, wc, diff, grep.
L'ho fatto un po' di corsa, potrebbero esserci errori.

Codice: Seleziona tutto

joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ diff -s ../WXHOEM_EN/I386/ WXHOEM_EN/I386/|grep dentical|wc -l
3081
joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ diff -s ../WXHOEM_EN/I386/ WXHOEM_EN/I386/|grep differ|wc -l
1966
joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ diff -s ../WXHOEM_EN/I386/ WXHOEM_EN/I386/|grep Only|wc -l
510
joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ diff -s ../WXHOEM_EN/I386/ WXHOEM_EN/I386/|grep Only in WX|wc -l
grep: in: No such file or directory
grep: WX: No such file or directory
0
joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ diff -s ../WXHOEM_EN/I386/ WXHOEM_EN/I386/|grep "Only in WX"|wc -l
417
joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ diff -s ../WXHOEM_EN/I386/ WXHOEM_EN/I386/|grep "Only in \.\.\/WX"|wc -l
93
joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ find ../WXHOEM_EN|wc -l
6116
joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ find WXHOEM_EN|wc -l
6534
joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ find WXHOEM_EN/I386/|wc -l
6517
joe@slax:/mnt/sdb2/winbuild/slipstreaming.test$ find ../WXHOEM_EN/I386/|wc -l
6110
Da questo conto restano fuori i file non binari che francamente non ho capito bene come trattare, comunque insomma, questa è un'idea di come procedere per venirne e capo. In pratica prima capire quanti files vengono trattati in un certo modo per poi andare ad indagaare quali sono al fine di capire perchè l'update.exe prende quella decisione piuttosto che un'altra.

Se avete commenti, idee, ecc ecc. Benvengano. Ho scritto apposta quello che ho fatto proprio con l'intento di avere un parere da voi.

Avatar utente
DarthSteve
Linux 1.x
Linux 1.x
Messaggi: 127
Iscritto il: mer 1 apr 2009, 10:00
Nome Cognome: Stefano
Slackware: --Current--
Kernel: 6.9..x
Desktop: KDE
Località: Lucca

Re: Slipstreaming SP3 nel CD winXP: da linux!!

Messaggio da DarthSteve »

Joe... ho fatto quasi quello che hai fatto... ma invece di usare 'update.exe' in "wine" ho scelto la
procedura piu' lunga: ho installato "Win2K8" virtualizzato in -VirtualBox- e poi fatto il slipstreaming.
--- The Jedi Code ---
There is no emotion; there is peace.
There is no ignorance; there is knowledge.
There is no passion; there is serenity.
There is no death; there is the Force

Avatar utente
joe
Iper Master
Iper Master
Messaggi: 3986
Iscritto il: ven 27 apr 2007, 11:21
Slackware: 15.0
Kernel: 5.15.38
Desktop: dwm

Re: Slipstreaming SP3 nel CD winXP: da linux!!

Messaggio da joe »

Ah, avevi fatto così allora... Però entrambi i metodi "nascondono" le valutazioni e operazioni che lo slipstreaming fa.
Come vedi io sto lavorando a ritroso:
ho i dati di partenza
ho i dati contenuti nel sp3
ho il risultato finale

L'obiettivo è troovare la procedura che porta al risultato finale ovviamente.
Per prima cosa sto contando quanti files vengono eliminati, aggiunti, aggiornati, invariati: in pratica è un confronto tra la directory target di partenza e la target aggiornata.
A quel punto confronterò la target aggiornata con la dir sorgente (quella contente il sp3) e da lì si dovrebbe poter fare la verifica.

Però i conti no mi tornano e penso sia perchè find come l'ho usato manda in outpu anche le directories e non solo i singoli files, invece penso che diff non lo faccia, penso...
Inoltre per ottenere con diff solo la lista dei files che differiscono senza vederne in dettaglio le differenze (in modo da poter contare le righe di putput con wc -l per capirci) occorrono alcune opzioni. Penso che "diff -rsq dir1 dir2" dovrebbe fare al caso mio.
Se avete in merito alla conta dei files diversi ugualli eliminati aggiunti ecc, qualche altra proposta, dite pure. Preferibilmente utilizzando tools classici da riga di comando.

Rispondi