Win7 + SysPrep + CloneZilla = lost settings

74

Solution 1

You're doing this all wrong. Clonezilla is a very poor Ghost clone (sorry for the pun) and Symantec doesn't even sell Ghost anymore, so that should give you a clue as to how outdated this 'disk cloning' approach is. See: http://mdtguy.wordpress.com/2013/06/13/clonezilla-is-a-joke-and-a-bad-one-at-that/

So there's two options here:

Using the PersistAllDeviceInstalls and copyprofile settings you could set the unattended.xml file to tell sysprep to persist all drivers and settings (not recommended). This puts you in the business of building an image for every make and model you support (pain in the ass). Copy profile is good, persist drivers? not so good. See below.

...Better Idea...

USE MDT 2013 instead. It's free AND actually written by Microsoft (the people who wrote the OS)

http://www.microsoft.com/mdt

  • Download and install ADK 8.1 (yes, it works for Win7)
  • Download and install MDT 2013 (yes, it also works for Win7)
  • Create a share for building the reference image in the MDT workbench.
  • Import the .wim file for Win7 from the ISO
  • Create a build image task sequence (enable windows updates if you like)
  • Update share and using a VM, boot to WinPE image it creates in boot folder
  • Build your reference image in a VM (this way you have a driverless image)
  • Capture your image (MDT will do the sysprep for you.)
  • Build a second share in MDT for deploying this image.
  • Create a deploy image task sequence.
  • Load your drivers into this share using the "total control" method taught by Johan Arwidmark
  • MDT will inject drivers at deploy time.

A more thorough guide can be found here: http://mdtguy.wordpress.com/getting-started/

I know this seems like overkill, but it has several key advantages, one of which is you have a hardware agnostic image that runs on all makes and models.

MDT will also name systems for you, update the images and install java, flash, firefox, whatever and finally join to the domain for you.

Clonezilla is a bad, bad choice if you're trying to roll out windows 7. Don't try to be a hero and reinvent the wheel here, the new MS Deployment tools are money, they just take some work to get up and running but are worth the time.

Solution 2

This is normal behavior for Sysprep. Please see the TechNet articles ‘How Sysprep Works and 'Maintain Driver Configurations When Capturing a Windows Image'. However, this makes your image restricted to that specific hardware. You can also 'Add and Remove Drivers Offline'. You should not activate Windows or join it to a domain prior to running sysprep.

The newest imaging and deployment tools from Microsoft can manage device drivers to make your images hardware independent. If you have a Windows Server 2008 R2 or newer, then Windows Deployment Services(WDS) is a built in role that can be enabled and has a driver store that you would put all device drivers into for automatic installation during the deployment.

The Microsoft Deployment Toolkit (MDT) is a free deployment solution that not only manages device drivers, but allows you to install software, packages and updates (even checking your WSUS server or Windows Update) during the deployment process, automatically. This allows you to create a hardware independent image that you can deploy to all your machines. MDT can be installed on your Technician workstation.

Hope this helps,

Share:
74

Related videos on Youtube

dante
Author by

dante

Updated on September 18, 2022

Comments

  • dante
    dante almost 2 years

    The UISearchBar cannot perform a search, what's wrong?

    I am looking for no tutorial on searching using json, but my code is already displayed in the table view but cannot search. I am new to the iOS developer world.

    import UIKit
    
    class updatedata: UIViewController,UITableViewDataSource, UISearchBarDelegate{
    
       @IBOutlet weak var searchbarr: UISearchBar!
       private var actors : [listpeserta]! = []
       private var realdata : [listpeserta]! = []
       var searching = false
       
       @IBOutlet weak var tableView: UITableView!
       override func viewDidLoad() {
           super.viewDidLoad()
           let url : URL = URL(string: "link")!
           var request : URLRequest = URLRequest (url: url)
           request.httpMethod = "GET"
           
           
           NSURLConnection.sendAsynchronousRequest(request, queue: .main) { (response, data, error) in
               guard let data = data else {
                   print(error)
                   return
               }
               let responseString : String! = String(data : data, encoding: .utf8)
               do {
                   
                   let jsonDecoder : JSONDecoder = JSONDecoder()
                   self.actors = try jsonDecoder.decode([listpeserta].self, from: data)
                   self.realdata = self.actors
                   self.tableView.reloadData()
               }catch{print(error.localizedDescription)}
           }
       }
       func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
           if searching {return realdata.count}
           else
           { return actors.count}
       }
        
        func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
           let cell = UITableViewCell(style: .default, reuseIdentifier: nil)
           
           if searching {
           cell.textLabel?.text = realdata[indexPath.item].nama
           }else
           {cell.textLabel?.text = actors[indexPath.item].nama}
           
           return cell
        }
       
       
       func searchBar(_ searchBar: UISearchBar, textDidChange searchText: String) {
           realdata = actors.filter({$0.nama.prefix(searchText.count) == searchText.lowercased()})
           searching = true
           tableView.reloadData()
       }
       func searchBarCancelButtonClicked(_ searchBar: UISearchBar) {
           searching = false
           searchBar.text = ""
           tableView.reloadData()
       }
         
    }
    

    this is, class listpeserta.swift

    import Foundation
    
    class listpeserta: Codable {
        public var nama : String!
    }
    
    • Logman
      Logman almost 11 years
      how did you use SysPrep? unattend ? more info....
    • oshirowanen
      oshirowanen almost 11 years
      sysprep just gave me 2 options, 1. enter system out-of-box experience, 2. enter system audit mode. I selected option 1.
    • MDT Guy
      MDT Guy over 10 years
      You're doing it wrong, see my basic walkthrough below...
    • paky
      paky almost 4 years
      Did you set the delegate of your searchBar searchbarr.delegate = self ? Didn't found one in your code or did I overlook it.
    • paky
      paky almost 4 years
      And also you said your code is already displayed in the table view, but I also can't find the tableview.dataSource = self. That make me a bit confused.
    • dante
      dante almost 4 years
      thankyuuu, searchbarr.delegate = self this is it
    • paky
      paky almost 4 years
      Alright glad to be of help, maybe I should post it as an answer then...
  • oshirowanen
    oshirowanen almost 11 years
    So how do I change Sysprep's default behaviour to clone the video drivers?
  • BlueBerry - Vignesh4303
    BlueBerry - Vignesh4303 almost 11 years
    @oshirowanen under settings tab u can create it(Beware, if you have different settings you'll have to use more than one image – or to use an answer file).
  • oshirowanen
    oshirowanen almost 11 years
    Which settings tab? When I run sysprep from the default sysprep in windows 7, I see no settings tab.