Я намагався видалити старі ядра, але я повинен був видалити всі ядра з мого ноутбука Ubuntu 11.04. Чи є можливість це виправити за допомогою завантажувача USB або встановлення жорсткого диска на іншій системі?
Я намагався видалити старі ядра, але я повинен був видалити всі ядра з мого ноутбука Ubuntu 11.04. Чи є можливість це виправити за допомогою завантажувача USB або встановлення жорсткого диска на іншій системі?
Відповіді:
Завантажте на живий компакт-диск (або живий USB), змонтуйте деякі системи, вставте в нього і встановіть ядро. Після успішної установки ядра відключіть файлові системи.
sudo mount /dev/sdXY /mntЗмонтуйте спеціальні перегородки:
sudo mount --bind /dev /mnt/dev
sudo mount --bind /proc /mnt/proc
sudo mount --bind /sys /mnt/sys
(необов’язково) Коли ви підключені до мережі, використовуйте DNS-сервери зі свого прямого середовища (інакше імена хостів, можливо, не можуть бути вирішені):
cp /etc/resolv.conf /mnt/etc/resolv.conf
/mnt:sudo chroot /mntapt-get install linux-image-generic(Судо не потрібно, оскільки ви root після chroot)Після успішної установки ядра вийдіть з chroot і відключіть деякі файлові системи:
exit
sudo umount /mnt/sys
sudo umount /mnt/proc
sudo umount /mnt/dev
sudo umount /mnt
sudo reboot/mnt. Ubuntu зазвичай піклується про відключення / синхронізацію файлових систем, але це виглядає більш чистою для мене.
/dev/mdxxxзмонтуєте один привід) ви будете відображати накопичувач, припускаючи, що це mdadm.
/etc/resolv.conf(видаліть її, якщо вона є симпосиланням) і покладіть щось на зразок nameserver 8.8.8.8(загальнодоступний сервер DNS Google). Замініть його при необхідності.
cp /etc/resolv.conf /mnt/etc/resolv.confперш ніж переходити до chroot. Це працювало для мене в будь-якому випадку
Ця розширена процедура пояснює більшість ускладнень, які можуть виникнути, включаючи проблеми підключення до Інтернету в chroot, не знаючи, який пакет ядер встановити (до Ubuntu 12.10, це не завжди буде linux-image-generic), не знаючи на початку, який розділ чи навіть який фізичний диск містить /файлову систему та має окремий /bootрозділ.
Я не писав цього з посиланням на будь-яку з інших процедур тут, хоча ви помітите деякі подібності. Я базував це, поступово, на цій процедурі (хоча ці вказівки для чогось зовсім іншого, я їх широко адаптував, і копіюються лише деякі команди, а не проза).
Ви видалили всі пакети ядра, і Ubuntu не може завантажитися без встановленого ядра. Таким чином, рішення полягає у завантаженні з живого CD / DVD / USB, chrootу встановлену систему та встановлення в ньому ядра.
Завантажтеся з живого CD / DVD Ubuntu або живої USB флеш-пам'яті.
Виберіть " Спробувати Ubuntu" (не встановлювати Ubuntu ).
Коли з'явиться робочий стіл, переконайтеся, що ви підключені до Інтернету. Якщо вас немає, підключіться до Інтернету. Один із способів дізнатися, чи підключено ви до Інтернету, - це відкрити веб-браузер. Ви навіть можете дотримуватися решти інструкцій, перенісши цю відповідь на запитання Ubuntu у своєму веб-переглядачі, в системі живих CD / DVD / USB. Я настійно рекомендую це зробити.
Відкрийте вікно терміналу Ctrl+ Alt+ T.
У вікні Термінал запустіть цю команду, щоб перелічити ваші розділи:
sudo parted -l
Ви побачите щось подібне (але воно не буде точно таким):
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system Flags
1 1049kB 20.4GB 20.4GB primary ext4 boot
2 20.4GB 21.5GB 1072MB extended
5 20.4GB 21.5GB 1072MB logical linux-swap(v1)
Warning: Unable to open /dev/sr0 read-write (Read-only file system). /dev/sr0
has been opened read-only.
Error: Can't have a partition outside the disk!
Вивчіть отриманий вихід, щоб визначити ім'я пристрою розділу, який містить /файлову систему системи Ubuntu, встановленої на жорсткому диску (який ви ремонтуєте).
Якщо у вас є лише один ext4розділ, це той самий.
Якщо у вас є кілька ext4розділів, це, мабуть, перший. Однак якщо перший дуже маленький - менше, ніж гігабайт, то це може бути окремий /bootрозділ (пам’ятайте, що він теж).
Зауважте, що те, чи bootвказано в списку, Flagsмає дуже мало спільного з тим, чи є розділ окремим /bootрозділом. Моя система, інформація про яку перерахована вище, не має окремого /bootрозділу.
Назва пристрою для розділу починається з імені пристрою для фізичного накопичувача, зазначеного відразу після Diskдругого рядка. Тоді просто додайте номер кінця розділу. Отже, назва пристрою для розділу, який містить мою / файлову систему /dev/sda1. Ось два рядки, де я знайшов цю інформацію:
Disk /dev/sda: 21.5GB
1 1049kB 20.4GB 20.4GB primary ext4 bootЯкщо у вас є більше одного фізичного приводу, ви отримаєте більше одного списку, як показано вище. Але якщо у вас не встановлена інша система, схожа на Unix, ви, мабуть, матимете лише один диск, який містить ext4розділи, принаймні, не створюючи їх навмисно на іншому диску. Якщо у вас є кілька дисків з ext4розділами, то, можливо, ext4розділ, який містить вашу /файлову систему, знаходиться на диску, який також містить linux-swapрозділ.
Це можливо , що ваша система Ubuntu в /файлової системі на перегородці іншого типу , ніж ext4. Коли це відбувається, це майже завжди ext3і майже завжди на досить старій системі. Дуже рідко так трапляється, якщо ви навмисно не налаштовуєте речі таким чином.
Запам’ятайте назву пристрою розділу, який містив вашу /файлову систему (або запишіть його). Якщо він відрізняється від /dev/sda1цього, ви заміните /dev/sda1його на наступних кроках.
(Якщо це виглядало так, що у вас є окремий /bootрозділ, запам'ятайте також ім'я пристрою для цього.)
Змонтуйте /файлову систему /mntта встановіть її /devфайлову систему:
sudo mount /dev/sda1 /mnt
sudo mount --bind /dev /mnt/devПеревірте, чи не працює зламана система Ubuntu, яку ви ремонтуєте, має окремий /bootрозділ, який потрібно встановити окремо. (Якщо ви впевнені, що це не так, ви можете пропустити це.)
Щоб перевірити, запустіть:
ls /mnt/boot
Якщо є вихід (як grub memtest86+.bin memtest86+_multiboot.bin, але не обов'язково саме такий), то зламана система /bootзнаходиться на тому ж розділі, що і її, /і вам не потрібно нічого монтувати, щоб отримати доступ до неї.
Але якщо виходу немає, вам доведеться змонтувати /bootфайлову систему:
sudo mount BOOT-PARTITION /mnt/boot
Замініть BOOT-PARTITIONназву пристрою /bootрозділу (див. Крок 6 вище).
chroot в порушену систему, змонтуйте решту важливих віртуальних файлових систем та встановіть деякі важливі змінні середовища:
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
Визначте, чи працює доступ до Інтернету зсередини, за chrootдопомогою pingнадійного хоста, який, як відомо, нормально реагує на pings:
ping -c 5 www.google.com
Ви повинні побачити щось подібне:
PING www.l.google.com (74.125.131.147) 56(84) bytes of data.
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=1 ttl=44 time=61.3 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=2 ttl=44 time=62.3 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=3 ttl=44 time=61.8 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=4 ttl=44 time=63.8 ms
64 bytes from vc-in-f147.1e100.net (74.125.131.147): icmp_req=5 ttl=44 time=66.6 ms
--- www.l.google.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 61.367/63.212/66.608/1.897 ms
Якщо це виглядає здебільшого так, а кількість раніше % packet loss- менше 100, то Інтернет-з'єднання в справі chrootпрацює:
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
Це працює, тому ви можете пропустити крок 11 .
Якщо це виглядає здебільшого так, а число раніше % packet loss100, з'єднання потребує усунення несправностей. Переконайтесь, що з'єднання в режимі живого CD (наприклад, через веб-браузер або за допомогою тієї самої команди в окремій, не chrootвідредагованій вкладці / вікні терміналу) працює. Переконайтесь, що ви правильно ввели команду. Використовуйте, www.google.comякщо ви ще не були.
Якщо вихід взагалі не схожий на вищезазначений, але натомість каже ping: unknown host www.google.com, то мережа ще не працює в chroot.
Налаштування мереж у chroot. Пропустіть цей крок, якщо не unknown hostсталася помилка на кроці 10 вище.
Щоб налаштувати мережу, створіть резервну копію розбитого hostsфайлу системи та скопіюйте файли hostsта resolv.confфайли живих CD- файлів. (Вам не потрібно робити резервну копію версії зламаної системи resolv.conf, оскільки цей файл автоматично відновлюється під час руху .)
Відкрийте нову вкладку Термінал ( Ctrl+ Shift+ T) або, якщо вам зручніше, нове вікно терміналу ( Ctrl+ Shift+ N, або просто Ctrl+ Alt+ T). Виконайте в ньому ці команди:
sudo cp /mnt/etc/hosts /mnt/etc/hosts.old
sudo cp /etc/hosts /mnt/etc/hosts
sudo cp /etc/resolv.conf /mnt/etc/resolv.conf
exit
( exitКоманда в кінці закриває нову вкладку / вікно.)
Повторіть крок 10 вище, щоб переконатися, що доступ до Інтернету зараз працює зсередини chroot. Це повинно.
З'ясуйте, який пакет ядер слід встановити. Зазвичай це буде linux-image-generic. Але не завжди.
Якщо ви не впевнені, що встановити, це частково залежатиме від того, який реліз Ubuntu ви встановили, а частково від іншої інформації. Якщо ви не впевнені, який реліз Ubuntu ви встановили, дізнайтеся, запустивши цю команду (у розділі chroot, а не в окремому вікні / вкладці термінала):
lsb_release -r
У Ubuntu 12.10 (наступний реліз Ubuntu, наразі в розробці), він завжди буде linux-image-generic. (Дивіться це , це та це .)
В Ubuntu 12.04 LTS ймовірні можливості є linux-image-genericі linux-image-generic-pae. (На відміну від попередніх версій, 12.04 більше не має окремих серверів і настільних ядер.)
Якщо встановлена система Ubuntu (яку ви виправляєте) 64-розрядна версія, використовуйте linux-image-generic. ( linux-image-generic-paeстосується лише 32-бітних систем.)
На 32-бітному або 64-бітному комп'ютері встановлена 32-розрядна система Ubuntu. Крім того, ви можете використовувати 32-бітний або 64-бітний живий компакт-диск для виправлення 32-бітної встановленої системи. Тож якщо ви не знаєте, чи встановлена система Ubuntu 32-розрядна чи 64-бітна, перевірте, запустивши цю команду (у окремому вікні / вкладці термінала chroot, а не в окремому вікні терміналу):
dpkg-architecture -qDEB_HOST_ARCH_BITS
Вихід буде або 32або 64.
(Зверніть увагу , що uname -mце НЕ правильний шлях , щоб знайти цю інформацію, тому що навіть при запуску в chroot, що розповість вам архітектуру запущеного ядра , що ядро програми системи Live CD і не встановлено (переривчаста) ядро системи.)
Якщо встановлена система Ubuntu (яку ви виправляєте) є 32-розрядною версією, найкраще ядро для використання залежатиме від обсягу оперативної пам’яті. Я рекомендую:
linux-image-generic якщо у вас менше 3 ГБ оперативної пам’ятіlinux-image-generic-pae якщо у вас є 3 ГБ оперативної пам’яті або більше.(Це як інсталятор для Ubuntu вибирає який один для установки, з тих пір установник отримав можливість встановити PAE ядра. Див дозвіл на цю помилку . Якщо ви хочете дізнатися , що PAE це, див статтю в Вікіпедії . Якщо ви хочете дізнайтеся про PAE в Ubuntu, дивіться цю сторінку вікі Ubuntu .)
Якщо ви не знаєте, скільки у вас оперативної пам’яті, запустіть цю команду, щоб з’ясувати:
grep MemTotal /proc/meminfo
Це вказано в кілобайтах . Щоб конвертувати в гігабайти , розділіть на 1,048,576 (1024 2 ).
В Ubuntu випускає перш , ніж 12.04, ймовірно , можливості linux-image-generic, linux-image-generic-paeі linux-image-server.
linux-image-server.Це той момент, якого ви чекали! Встановіть ядро в порушеній системі.
(Як і раніше, за винятком випадків, коли явно зазначено інше, ці команди виконуються в chrootокремому вікні / вкладці термінала, а не в окремому вікні / вкладці терміналу.)
apt-get update
apt-get -y install linux-image-generic
Замініть linux-image-genericбудь-яким іншим пакетом ядра, який ви вирішили встановити на кроці 12 вище, якщо він інший.
Якщо вам довелося виконати крок 11 для налаштування мереж у програмі chroot, відновіть старий hostsфайл. Якщо ви пропустили крок 11, пропустіть і цей крок.
Щоб відновити його, запустіть цю команду:
cp /etc/hosts.old /etc/hosts
Демонтуйте файлові системи, exitвиходячи з chroot:
umount /proc || umount -lf /proc
umount /sys /dev/pts
exit
sudo umount /mnt/dev /mnt
Вимкніть живу систему CD / DVD / USB, видаливши живий CD / DVD або флешку. Завантажтесь у систему, встановлену на жорсткому диску, яку ви тільки що відремонтували. Ви встановили пакет ядра в ньому (і як частина установки, ядро, яке він надає, буде додано до меню завантаження GRUB2). Якщо все працювало правильно, ваша система повинна без проблем завантажуватися. (Я думаю, що цілком можливо, що цього разу завантаження займе трохи більше часу, ніж зазвичай.)
ВИСНОВОК: Я не перевіряв вищевказану процедуру на всіх можливих системах Ubuntu, тому, можливо, в ній є помилка, яку я не визначив.
Надалі я рекомендую завжди намагатися тримати два ядра. Добре мати два, якщо одна з них перестане працювати з будь-якої причини (ви можете вибрати іншу в меню завантаження GRUB2). Крім того, якщо ви маєте намір зберегти два ядра, і ви випадково видалили ще одне, ніж ви мали намір і перезавантажити, у вас все одно залишилося одне для завантаження.
/etc/resolv.confсьогодні управляється resolvconf, він автоматично генерується при використанні NetworkManager і може бути безпечно видалений за допомогою, rm /etc/resolv.confяк ви дізналися.
Коли я видалив своє ядро, я знайшов це рішення на форумах Ubuntu. Я стежив за кожним кроком, і система відновилася. Сподіваюся, це допоможе вам.
Chroot може спрацювати, chroot означає, що при запуску системи ви змінюєте кореневу файлову систему. Наприклад, ви почали з живого компакт-диска, але ви змінили корінь "/" на місце встановлення вашого ubuntu.
Скажімо, ваш ubuntu встановлений на / dev / sda2, тоді ви можете спробувати наступні команди:
Код:
sudo mount /dev/sda2 /mnt
sudo cp /etc/resolv.conf /mnt/etc/
sudo cp /etc/hosts /mnt/etc/
sudo mount --bind /dev/ /mnt/dev
sudo chroot /mnt
mount -t proc none /proc
mount -t sysfs none /sys
mount -t devpts none /dev/pts
export HOME=/root
export LC_ALL=C
dbus-uuidgen > /var/lib/dbus/machine-id
dpkg-divert --local --rename --add /sbin/initctl
ln -s /bin/true /sbin/initctl
тепер ви root "/" увімкнено / dev / sda2, спробуйте встановити ядро
apt-get update
apt-get install linux-image-2.6.32-26-generic
update-initramfs -cv -k all
update-grub
Мені довелося тут трохи вгадати, оскільки мені раніше цього не доводилося робити, але це повинно бути з цього приводу. Не знаю, чи отримуєте ви попередження про помилку fstab (наприклад, не вдається знайти root).
Тепер вам потрібно очистити деякі речі та відключити змонтовані розділи: Code:
rm /etc/resolv.conf
rm /etc/hosts
rm /var/lib/dbus/machine-id
rm /sbin/initctl
dpkg-divert --rename --remove /sbin/initctl
umount /proc # if this doesn't work try umount -lf /proc
umount /sys
umount /dev/pts
exit
sudo umount /mnt
Ви можете перезавантажити, щоб побачити, чи спрацювало воно.
URL для потоку: http://art.ubuntuforums.org/showthread.php?t=1688928
/etc/hostsта видалили /sbin/initctl? Там є причина.
/sbin/initctlабо dbus-uuidgenабо dpkg-divert. Ви , можливо , буде потрібно замінити /etc/hostsдля підключення до Інтернету, але зазвичай не, і якщо ви робите, ви повинні поставити вихідне стан . На встановленій системі (а не на живому компакт-диску, який завантажується, потім розпаковується файлова система squashfs), вам не доведеться запускати update-initramfsабо навіть update-grubпісля встановлення ядра.
linux-image-2.6.32-26-genericдля більшості людей це не буде правильним ядром.
Після того, як я вчора видалив старі ядра з Trusty14.04 (FTR: я не видалив два останніх!), Моя система більше не завантажуватиметься. GRUB показав
Error: File not found
Error: You need to load the kernel first
Не знаю чому.
Потім я дотримувався чудових інструкцій Еліа Кагана, щоб встановити його linux-image-genericз живого компакт-диска. Він встановив 150 Мб нового ядра, але, на жаль, це не вирішило проблему.
На щастя, я знайшов цю сторінку . Boot-RepairІнструмент отримав це право, моя система працює знову.
Мені просто хотілося додати свій досвід, який я пройшов сьогодні з модернізації до Віллі. Я трохи прибрав, і я опинився лише на пам'ять. google привів мене до розуміння того, що я видалив ядра. Одне обмеження у мене - це повільна мережа, тому завантаження повного ISO не було можливим. Тому я використав компакт-диск Ubuntu Minimal (лише 40 МБ) і завантажився на ньому. Після виявлення апаратної опції (яка допомогла мені підключитися до бездротового зв'язку) я перейшов у варіант оболонки. Я дотримувався інструкцій @Lekensteyn і мені це вдалося. Однак декілька речей: вам доведеться копіювати resolv.confперед chroot або інакше ваш DNS буде загвинтований, і оскільки користувач, який увійшов у систему, не має корінця, нікуди не потрібно судо.
Я знаю його давнє, але я думав, що додавання цієї відповіді додасть значення тим, хто зіткнеться з проблемою.