Accidently deleted /usr/lib, how do I restore it?
Solution 1
There are tools that might help you undelete the files, but usually it's a slow and mostly manual process. Search engines are your friends.
It may be easier to boot up a live CD or USB, mount your system's root partition, then copy /usr/lib to /mnt/{root.drive}usr/lib, but you will only get the default lib files and not what you may have added.
I think the best option is to reinstall the OS. Of course, you will want your data on a separate partition that is not formatted during install, good practice IMHO.
Solution 2
Supposing apt-get
still works you can try to use dpkg
to get a listing of the packages that have files there and then install them with apt-get
. You can use this Ruby script, but the same idea can be implemented in python or bash:
raw_pkgs = `dpkg --get-selections`.split("\n")
need_reinstall = []
path="/usr/lib"
raw_pkgs.each do |x|
pkg = x.split(" ")[0]
if `dpkg -L #{pkg}`.include? path
puts "-> #{pkg} has files in #{path}"
need_reinstall << pkg
end
end
puts "\nYou need to reinstall #{need_reinstall.size} packages:"
puts "\tsudo apt-get install --reinstall " + need_reinstall.join(" ")
It is a little of a brute-force solution and will take some time (in my system the listing was ~65% of the total packages installed...), but should work.
Solution 3
Then create an ubuntu USB boot. Then boot to "try ubuntu" mode. Then mounting your disk to access /usr/lib folder Access files in Home directory from live mode . Copy /usr/lib from other computer to your. Restart. Then your computer can work almost normally with almost all basic function. You can install missing libs later
Related videos on Youtube
Jorge Castro
Updated on September 18, 2022Comments
-
Jorge Castro almost 2 years
I know this is something I shouldn't do, but it happened(Ubuntu 12.04.1 LTS) as a root user I deleted /usr/lib folder. Any ideas how to restore it?
-
Admin over 11 yearsSome (or all) answers there might not help. Like the accepted answer, which says, "Since you've only deleted
/usr/lib/*
and not/lib/*
, you can probably recover.")
-