Как удалить устройство ubuntu

Обновлено: 06.07.2024

У меня нет абсолютно никакого опыта работы с Linux, и мне очень нужно, чтобы мой компьютер снова заработал и снова работал с Windows.

Как удалить Ubuntu и переустановить Windows?

Примечание редактора : многие ответы касаются удаления Ubuntu из двойной загрузки, но с сохранением Windows (что немного сложнее), в то время как другие ответы касаются удаления Ubuntu из одиночной загрузки (что легко: в основном, просто отформатируйте диск при установке Windows ). Вопрос, как написано, неоднозначен между двойной загрузкой или одиночной загрузкой.

Я следовал этому руководству, в частности загрузке BIOS, и смог установить Windows 10 поверх Ubuntu. И ничего из вышеперечисленного не является онтопом ;-) Вы удаляете ОС, устанавливая другую. Так что Ubuntu здесь не проблема. Получите официальную Windows и следуйте их инструкциям. Нет необходимости удалять операционную систему, чтобы установить другую. Следуйте инструкциям по установке Windows с установочного носителя Windows и попросите его перезаписать все. На мой взгляд, как это сделать, выходит за рамки этого сайта. Примечание : многие ответы на этот вопрос касаются удаления Ubuntu из режима двойной загрузки, но с сохранением Windows (что немного сложнее), в то время как другие ответы касаются удаления Ubuntu из режима одиночной загрузки (что легко: просто отформатируйте диск при установке Windows). Вопрос не ясен, если речь идет о двойной загрузке или одиночной загрузке.

Если у вас есть система с одной загрузкой и только Ubuntu, вы можете установить Windows напрямую и полностью переопределить Ubuntu. Чтобы удалить Ubuntu из системы двойной загрузки Ubuntu / Windows, сначала необходимо заменить загрузчик GRUB загрузчиком Windows. Затем вам нужно будет удалить разделы Ubuntu.

Первый шаг можно сделать с помощью DVD-диска восстановления Windows / установочного DVD или Ubuntu Live DVD. Если у вас есть более новый ноутбук Dell (например, Dell Inspiron), вам нужно будет изменить последовательность загрузки в настройках UEFI, что будет обсуждаться позже.

Использование Windows Recovery или установочного носителя

Если у вас нет носителя для восстановления или установки Windows, вы можете загрузить официальные файлы ISO для Windows 10, Windows 8 или Windows 7 из центра загрузки Microsoft и записать их на DVD или USB-накопитель. Windows будет установлена ​​в качестве ознакомительной копии только в течение 30 дней без подлинного ключа продукта.

Возьмите диск восстановления или установки Windows и загрузитесь с него. Вы должны увидеть этот или аналогичный экран на носителе для восстановления .

Диалог Параметры восстановления системы

Вы должны увидеть это на установочном носителе . Нажмите «Восстановить компьютер», и вы увидите экран, похожий на первое изображение.

Программа установки Windows

Откройте командную строку , затем введите bootrec /fixmbr в командной строке.

Командная строка FIXMBR

Перезагрузитесь и загрузитесь в Windows. Затем выполните следующие шаги, чтобы удалить разделы Ubuntu.

Использование Ubuntu Live DVD и восстановление загрузчика

Если у вас нет компакт-диска восстановления Windows или вы вынуждены загружать и записывать файлы ISO, упомянутые ранее, вы можете использовать Boot-repair . Это инструмент, который устраняет большинство проблем с загрузкой (Windows или Ubuntu). Я предлагаю использовать Windows CD, если это возможно.

Загрузитесь с Ubuntu Live DVD или USB

Введите эти строки в терминале по одной строке за раз.

Найдите Boot-Repair в Dash и запустите его.

Диалог восстановления загрузки

Изменение последовательности загрузки в настройках UEFI компьютера Dell

Более новые ноутбуки Dell, такие как Dell Inspiron, требуют, чтобы порядок загрузки был изменен непосредственно в настройках UEFI. Это можно сделать с помощью следующих шагов.

  • Нажмите, F12 когда появится логотип Dell.
  • Перейти к General → Boot Sequence . В разделе «Последовательность загрузки» выберите Ubuntu , затем нажмите Delete Boot Option .
  • Перезагрузите компьютер.

Удаление разделов Ubuntu

После предыдущих шагов ваш компьютер должен загрузиться прямо в Windows.

Перейдите в Пуск, щелкните правой кнопкой мыши Компьютер, затем выберите Управление. Затем выберите Управление дисками на боковой панели.

Управление диском

Щелкните правой кнопкой мыши по разделам Ubuntu и выберите «Удалить». Проверьте, прежде чем удалить!

Затем щелкните правой кнопкой мыши раздел, который находится слева от свободного места. Выберите «Расширить объем». Пройдите Волшебника и Закончите это.

Мастер расширения тома

Примечание от Tanner : Если вы используете расширенный раздел, вам, возможно, придется удалить большой расширенный раздел, чтобы освободить место.

Вместо перекрестного ответа этот ответ на самом деле редактируется для учета (существенных) различий между этими двумя вопросами. +1 Вы можете добавить, что вам нужно дважды удалить разделы, чтобы освободить их, прежде чем вы сможете расширить том. Итак, я следовал за этими шагами. Но когда я удалил разделы, он обнаружился как свободное место (не нераспределенное). Опция расширения левого раздела недоступна. Благодарю. В итоге я использовал стороннюю утилиту управления дисками для объединения томов. В строке «вы не можете установить Windows с подлинно купленным ключом продукта» есть небольшая ошибка. Слово «с» следует читать «без». (Невозможно изменить это, так как изменение слишком мало.)
  1. Загрузите живой CD / DVD / USB с Ubuntu
  2. Выберите «Попробуйте Ubuntu»
  3. Скачайте и установите OS-Uninstaller .

Запустите программное обеспечение и выберите, какую операционную систему вы хотите удалить.

введите описание изображения здесь

Эй, как вы можете удалить как ОС, находящуюся в данный момент под этой ОС? Как может существовать шаг 6, если после шага 5 не должно быть никакой Ubuntu? Зеленый, инструмент используется с live-сессии. Лусио, если на жестком диске есть только одна ОС, то инструмент не позволит удалить его. @Lucio, если на компьютере только одна ОС, то простое форматирование сделает эту работу. Для того, чтобы мой жесткий диск Windows снова загрузился, мне пришлось загрузиться с DVD-диска Windows, а затем перейти к Восстановить компьютер, Команда, а затем запустить bootrec /fixmbr и затем bootrec /fixboot . Теперь я могу, наконец, загрузиться в Windows, не зависимо от Grub или Ubuntu или от работающего второго жесткого диска.

Сначала загрузите bootsect.exe в каталог загрузки.

нажмите windows клавишу, введите cmd.exe и в результате (командная строка) запустите его как «Администратор», щелкнув правой кнопкой мыши значок cmd и выберите Run as Administrator .

В новом окне cmd.exe перейдите в каталог загрузки. например cd C:\Users\Lalu Patel\Downloads . _ предположим, что ваше имя пользователя "Lalu Patel".

Затем введите эту команду. bootsect.exe /nt60 ALL /force /mbr , Перезагрузите систему, чтобы увидеть, что Windows автоматически загружается без grub.

  1. Откройте панель управления (представление «Все элементы») и щелкните значок «Администрирование». затем закройте окно панели управления
  2. Нажмите «Управление компьютером» Administrative Tools , затем закройте окно «Администрирование».
  3. На левой панели в разделе «Хранилище» нажмите Disk Management . увидеть это .
  4. Выберите раздел с unknown типом. это раздел Ubuntu. Щелкните правой кнопкой мыши -> Удалить раздел.
  5. Теперь бывший раздел Ubuntu становится нераспределенным пространством.
  6. Выберите левый раздел нового unallocated space .
  7. Щелкните правой кнопкой мыши на разделе -> нажмите Extend Volume .
  8. Нажмите на кнопку Далее.

Введите, сколько МБ (1 ГБ = 1024 МБ) вы хотите использовать из нераспределенного пространства для расширения выбранного раздела (шаг 5), затем нажмите кнопку Далее. увидеть это .

Примечание . Если вы хотите использовать все нераспределенное пространство для расширения, введите максимально доступное пространство, показанное для нераспределенного пространства.

Нажмите на кнопку Готово. Вы сделали

Вам не нужно загружать, bootsect.exe если у вас есть ремонтный компакт-диск Windows - и если у вас его нет (вы должны), его достаточно легко создать. @bcbc: бывают ситуации, когда это не так просто (купил ноутбук без компакт-диска восстановления Windows, а жесткий диск с разделом восстановления сломался . ). Ваша ссылка на bootsect теперь не работает. Я смог скачать его отсюда, хотя процесс загрузки был долгим, и мне пришлось пройти через несколько страниц. Используя это и ваши инструкции, все работало. @FabioMarroni Нет проблем. Спасибо за вопрос. Кстати, ссылка обновляется

Если у вас нет компакт-диска Windows и вы удалили раздел Ubuntu

  1. Создайте Ubuntu LiveCD / USB.
  2. Загрузитесь с вашего Ubuntu LiveCD / USB, выбрав его в параметрах загрузки BIOS.

После загрузки Ubuntu откройте терминал ( Ctrl + Alt + T ) и выполните следующие команды:

Примечание. Возможно, вам придется заменить /dev/sda основной жесткий диск, на котором установлены Ubuntu и Windows.

Отличный ответ! Поскольку у пользователя, вероятно, уже есть живой диск, который он использовал для установки Ubuntu, ему не нужно искать диск Windows. lilo -M Вариант быстро и эффективно. . также работает со всеми текущими версиями Windows. Большое спасибо за это. Он дополняет ответ @ Atem18, сводя весь процесс восстановления к использованию живого компакт-диска Ubuntu и установке всего двух программ - lilo и os-uninstaller . Спасибо - я никуда не попал с приведенными выше ответами и поиском в Google, но это, в конце концов,

Затем щелкните правой кнопкой мыши по разделу Свободное пространство (пространство подкачки) и снова удалите его, он должен стать частью неучтенного пространства. Теперь вы не хотите просто оставлять все это пустое место на вашем HD. Щелкните правой кнопкой мыши на своем разделе Windows сейчас, и нажмите увеличить громкость. По умолчанию он должен соответствовать максимальному размеру вашего HD (который вы хотите, чтобы в XP было все пространство) и нажмите «Продолжить». Вот и все, он все сделает, и Windows XP теперь должна иметь весь ваш HD, Ubuntu исчезнет, ​​и вы вернетесь к загрузчику XP. Надеюсь, что это помогло вам!

Спасибо. Я рассмотрел этот вариант, и он выглядел многообещающим. Однако я решил попробовать предложения Pestilence, так как для этого не требовалось дополнительное программное обеспечение. Я думал, зачем добавлять к моей проблеме больше программного обеспечения . когда у меня уже должны быть инструменты . если бы я только знал, как их использовать. Я также использовал функцию управления дисками консоли Microsoft для удаления раздела подкачки и Ubuntu . так что СПАСИБО за идею.

Способ «удалить» Ubuntu - удалить раздел, который он использует. Это сделает раздел доступным для переформатирования и использования в другой ОС.

Если вы все еще можете запустить Windows, используйте ее менеджер дисков для удаления раздела Ubuntu. Затем вы можете отформатировать его для использования в Windows или расширить существующий раздел.

Вы также можете загрузить Ubuntu LiveCD и выбрать опцию «Try Ubuntu». После загрузки найдите и запустите gparted и удалите раздел.

Если Windows и Ubuntu ушли, и вы хотите переустановить Windows, вы можете переразметить и переформатировать во время установки.

Поскольку загрузчик, кажется, не работает, вам также может понадобиться восстановить MBR (главную загрузочную запись) после удаления Ubuntu. Обычно это можно сделать с помощью установочного диска Windows, если он был вставлен при загрузке.

Вам нужно восстановить MBR, который был перезаписан grub при установке Ubuntu. В старые времена вы запускали fdisk / MBR на системном диске. Способ сделать это в Windows XP - запустить «Консоль восстановления Windows», которую можно запустить с установочного диска или установить на жесткий диск и запустить оттуда.

Однако, поскольку у вас нет компакт-диска, вам нужно попробовать установить его с того, что у вас уже есть. Откройте диалоговое окно запуска (win + r или start-> run) и введите следующее:

Как только это будет сделано успешно, ваш компьютер снова загрузится прямо в Windows.

Благодарю. Это было хорошо Я нашел свой компакт-диск Recovery DVD и Recovery Tools. Последний запустил консоль восстановления Microsoft. Затем он попросил запустить miniNT или I386, поэтому на основе вашей командной строки я выбрал I386. Затем я вошел в FIXMBR без вариантов. Затем ВЫХОД. Затем Microsoft предложила выбрать Восстановление системы, Разрушительное восстановление или ВЫКЛЮЧИТЬ, и я выбрал ВЫКЛ. Когда я снова включил питание, он загрузился прямо в XP и сделал CHKDSK. Моя XP снова работает так же, как и до эксперимента UBUNTU. БЛАГОДАРЮ ВАС. В следующий раз я установлю его в Windows XP, чтобы я мог использовать функцию добавления / удаления, а не этот ручной метод. @ Marco

Если вам нравится платное программное обеспечение, я настоятельно рекомендую Acronis . Парагон тоже хорош. У него много интересных вариантов. Это позволяет вам делать все, что вам нужно для этого. Порядок операций:

  1. Получите живой носитель, который позволит вам выполнять все эти операции без резервного копирования ОС или MBR. Смотрите акронис ссылку.
  2. Удалите разделы Ubuntu (вероятно, все, что не NTFS или FAT32)
  3. Изменить размер раздела Windows, чтобы заполнить диск
  4. Применить изменения и, возможно, перезагрузить в зависимости от того, какая версия программного обеспечения у вас есть
  5. Запустите мастер устранения проблем с загрузкой в ​​Acronis. Это магия.

В качестве альтернативы, вы можете использовать supergrubdisk . Направления на их вики включают скриншоты и пошаговые инструкции.

Я посмотрел на это. Это выглядело как отличная идея, но я искал что-то для работы с командами, уже доступными мне через XP или Ubuntu.

Вы можете зайти в утилиту управления дисками и удалить раздел Ubuntu. Щелкните правой кнопкой мыши Мой компьютер, выберите Управление, Дисковая утилита. После удаления раздела щелкните правой кнопкой мыши Мой компьютер, выберите «Свойства» и перейдите на вкладку «Дополнительно». Зайдите в «Запуск и восстановление», установите Windows в качестве операционной системы по умолчанию и установите для времени отображения списка операционных систем значение 0 и нажмите кнопку «ОК».

Я следую вашему совету в первых 2 предложениях. Однако, в своем 4-м предложении вы говорите установить Windows в качестве ОС по умолчанию . Это не может быть проблемой, которая заставляет UBUNTU загружаться первой, поскольку в настоящее время она установлена ​​в Windows как ОС по умолчанию. , есть что-то еще, что переопределяет это, которое было установлено в Ubuntu 11.10 . что это может быть?

Если вы можете загрузить Ubuntu Live CD, выберите опцию «Try Ubuntu». Затем попробуйте установить его снова, выбрав ручное разбиение. Это последний вариант на этапе «Подготовьте диск» . Переустановите его в тот же раздел, который вы пробовали ранее.

Сначала удалите старый раздел Ubuntu (вы можете распознать старый раздел Ubuntu, посмотрев на столбец типа раздела, он должен иметь тип as ext4 или ext3 )

Затем создайте новый раздел , нажав кнопку «Добавить». В новом диалоговом окне измените «Не использовать раздел» ext4 , установите флажок «галочка» в «формате» и в нижнем списке выберите / , затем нажмите «ОК».

Убедитесь, что вы выбрали загрузочное устройство как /dev/sda (если вы устанавливаете на локальный жесткий диск). Тогда продолжай.

Если вы были достаточно опытным пользователем Windows, то после перехода на Linux, наверное, задавались вопросом, а где здесь диспетчер устройств? Программа, с помощью которой можно было бы посмотреть подключенные к компьютеру устройства, установленные для них драйвера, настроить драйвера, да и посмотреть информацию об оборудовании в одном месте. Но ситуация здесь неоднозначная, полной альтернативы нет, есть утилиты показывающие немного информации, есть консольные команды. Но все очень запутанно и непонятно.

В этой статье мы попытаемся расставить все точки над "i" в вопросе просмотр устройств Ubuntu, и в частности, ответим на вопрос где взять диспетчер устройств Ubuntu.

Немного теории

Работа с драйверами в операционных системах Linux и Windows очень сильно отличается. В Windows нужно отдельно искать и устанавливать каждый драйвер, в Linux же все доступные драйвера с открытым исходным кодом встроены в ядро и поэтому установка драйверов не нужна, за исключением нескольких проприетарных устройств, таких как видеокарты. Драйвера для таких устройств выделены в виде модулей ядра и загружаются по мере необходимости. Что же касается свободных драйверов, то для одного устройства в ядре может быть несколько модулей, из которых система выбирает то, что по ее мнению, будет лучше работать.

Таким образом, в Linux драйверы устройств, встроенные в ядро и выполненные в виде отдельных модулей логически разделены с оборудованием и настраиваются отдельно. Возможно, причиной этому сложность настройки, а может сам принцип GNU - одна утилита - одно действие. Дальше мы рассмотрим несколько способов посмотреть список устройств linux, для этого есть как консольные, так и графические утилиты. Настройку модулей мы сильно трогать не будем, потому что все уже описано в отдельной статье.

Диспетчер устройств Ubuntu в терминале

Устройства подключаются к материнской плате несколькими способами. Это может быть шина PCI, используется для многих основных компонентов компьютера, например, видеокарты, звуковой карты, сетевого адаптера и т д. Еще может использоваться USB, этот тип подключения чаще всего применяется для внешних устройств вроде веб-камеры, клавиатуры, мыши и т д. Жесткие диски не подключаются по PCI, для них существует отдельный интерфейс - SCSI (Small Computer System Interface). PCI шина является главной, к ней подключены другие контроллеры, в том числе USB и SCSI. Такое разделение необходимо, потому что это устройства разного типа, им нужно передавать разное количество информации, нужна разная скорость передачи и даже разное напряжение питания от сети.

В соответствии с принципом GNU в Linux есть отдельная утилита, для просмотра каждого из типов устройств. Называются они так же, как и технологии, с помощью которых подключены устройства с префиксом ls (list):

Рассмотрим каждую из этих утилит подробнее.

lspci

Как я уже сказал, к шине PCI подключаются многие важные устройства. PCI расшифровывается как Peripheral component interconnect или по-нашему взаимосвязь периферийных компонентов. Все видеокарты подключаются именно таким способом также чаще всего мы можем здесь встретить сетевые адаптеры, карт ридеры и другие адаптеры. В основном все что размещено на материнской плате, в корпусе компьютера, кроме процессора и жестких дисков подключено по PCI.

Посмотреть устройства Ubuntu подключенные по шине PCI можно с помощью команды lspci. Давайте рассмотрим ее синтаксис:

$ lspci опции

Опции утилиты указывают сколько данных нужно выводить и как их фильтровать. Рассмотрим подробнее:

  • -v - выводить подробную информацию об устройствах
  • -vv - выводить очень подробную информацию об устройствах
  • -n - показывать код производителя для устройства
  • -b - показать все адреса устройств на шине
  • -d - показать только устройства определенного производителя
  • -t - просмотр устройств ubuntu в виде дерева.
  • -s - показать информацию об определенном устройстве

Но обычно вам не понадобятся эти опции, чтобы посмотреть оборудование, подключенное по PCI просто выполните команду без параметров:

devices

В первой колонке отображен адрес устройства на шине PCI, так называемый, слот, во второй тип устройства, а затем его производитель и описание. Опция -n позволяет отображать вместо типа и описания id производителя и модели устройства.

Если вы хотите посмотреть только оборудование определенного типа, скажем, звуковую карту используйте фильтр grep:

lspci | grep audio

devices1

Или для видео карты:

lspci | grep VGA

devices2

Также можно фильтровать информацию по слоту устройства с помощью опции -s:

devices3

Также мы можем фильтровать устройства по PCI id, идентификатору производителя:

lspci -d 80ee:beef

devices4

Более подробную информацию об устройстве, можно посмотреть с помощью опции -v. По умолчанию мы видим только тип устройства и производителя, а с помощью этой опции можно увидеть дополнительные технические характеристики.

devices5

Хотите просмотреть какой драйвер ядра сейчас загружен для устройства? Эту информацию утилита предоставляет с опцией vv:

devices9

Нас интересует строчка Kernel driver in use. Можем отфильтровать по ней:

lspci -vv | grep Kernel

devices10

lsusb

Несмотря на то, что контроллер USB подключен к PCI, в выводе команды lspci мы увидим только сам контроллер, для просмотра устройств Ubuntu нам нужна другая команда, и это lsusb. Синтаксис тот же:

$ lsusb опции

Опций здесь поменьше:

  • --verbose - подробный вывод
  • -s - аналогично lspci, выводить устройства, подключенные к определенному порту
  • -d - выводить устройства по определенному идентификатора производителя
  • -t - включить отображение в виде дерева

Смотрим все подключенные устройства USB ubuntu:

devices6

Выбираем только устройства подключенные к первой шине, второму порту:

devices7

Выбираем устройства по идентификатору производителя:

lsusb -d 80ee:0021

devices8

Здесь способ отображения похожий, в первой колонке шина и порт, разделенные двоеточием, дальше id производителя, а затем описание устройства.

lsscsi

SCSI контроллер тоже подключен к PCI, а к нему уже подключаются жесткие диски и оптические приводы. Для просмотра этих устройств используется утилита lsscsi. Если она не установлена в вашей системе, ее можно установить командой:

sudo apt-get install lsscsi

Синтаксис тот же:

$ lsscsi опции

Но опций тут немного больше:

  • -c - классический стиль, более подробная информация
  • -d - показать только определенное устройство
  • -k - отображать файлы дисков linux для устройств
  • -H - отображать хосты scsi, подключенные к системе
  • -l - вывод дополнительной информации по каждому устройству
  • -v - вывод файлов блочных устройств в каталоге /sys
  • -s - отобразить размер подключенного диска

Смотрим подключенные жесткие диски:

devices11

devices12

А вместе с размером диска:

devices13

lscpu

Процессор подключен к отдельному слоту на материнской плате, и для просмотра информации о нем используется отдельная утилита - lscpu:

devices15

Теперь, когда вы разобрались с основами, можно посмотреть еще одну утилиту. lshw выводит подробную информацию по каждому устройству в терминал. Здесь отображается как процессор и pci устройства, так и жесткие диски:

devices14

С помощью опции -class можно указать тип оборудования, о котором нужно выводить информацию. Доступны такие классы:

sudo lshw | grep \*

devices16

На этом дереве наглядно показана иерархия подключения устройств в Linux. Например, смотрим информацию только о видеокарте:

sudo lshw -class display

devices17

Или сетевом адаптере:

sudo lshw -class network

devices18

Здесь же можно посмотреть какой драйвер загружен для устройства, в строке Конфигурация, поле driver.

Как видите, консольные инструменты ничем не хуже программы Windows, и они полностью заменяют диспетчер устройств в Ubuntu.

Диспетчер устройств с графическим интерфейсом

Пожалуй, лучшей программой для решения таких задач будет hardinfo. Она позволяет посмотреть устройства Ubuntu подключенные к системе, подробную информацию о них, а также информацию об установленной системе и поддерживаемых ею функциях.

Эта программа не поставляется с дистрибутивом по умолчанию, но ее очень просто установить:

sudo apt install hardinfo

Вот так выглядит главное окно программы:

devices19

На вкладке Computer собрана информация о системе:

devices20

Если вам нужны только подключенные устройства ubuntu, то для этого есть раздел Devices, здесь есть подробная информация по каждому устройству:

devices21

Эта программа - отличная замена консольным методам, для тех кто не любит использовать терминал и хочет посмотреть устройства Ubuntu. Правда, здесь есть пару минусов - информация не настолько подробная, к тому же тут вы не узнаете какой модуль загружен для того или иного устройства.

Выводы

В этой статье мы рассмотрели как в Ubuntu посмотреть устройства, подключенные к компьютеру хотя и нет единой программы, диспетчер устройств в Ubuntu, но зато есть достаточно инструментов, чтобы ее заменить. Надеюсь, теперь для вас работа с устройствами в Linux стала чуть яснее. Если остались вопросы, пишите в комментариях!

Работа с устройствами в Linux очень сильно отличается от Windows. Главная концепция Linux в том, что все есть файл, не только пользовательские файлы с информацией, но и различные настройки ядра, подключенные устройства, память, сетевые соединения, все это представлено в виде файлов, которые размещены в специальных файловых системах.

С помощью этих файлов система работает с устройствами, и вы можете ими управлять с помощью различных утилит. В этой статье мы рассмотрим как выполняется работа с устройствами Linux, что из себя представляют устройства Linux, а также рассмотрим несколько примеров создания файлов устройств и обращения к ним. Это довольно интересная тема.

Файлы устройств Linux

Все файлы устройств расположены в каталоге /dev, который есть неотделимой частью корневой файловой системы, поскольку они должны быть доступны на всех этапах загрузки. Они также известны как специальные файлы устройств. Эти файлы используются операционной системой для обеспечения пользователю и программам интерфейса доступа к устройствам, подключенным к компьютеру.

Самое важное, что нужно знать об этих файлах - это не драйверы устройств, их лучше рассматривать как интерфейс доступа к драйверам устройств. Приложение отправляет данные в файл устройства, откуда они читаются драйвером устройства и отправляются на физическое устройства. Обратная передача от физических устройств тоже проходит по этому пути через файл устройства. Давайте посмотрим как будет выглядеть поток передачи данных для типичной команды, например, cat:

dboth-dev-dir_0

На схеме приведена схема передачи данных для команды cat /etc/resolv.conf. Вы выполняете команду из терминала, утилита отправляет запрос файла драйверу, который ищет файл на диске и читает его содержимое. Данные передаются через файл устройства, а затем опять же, через файл устройства псевдо-терминала передаются в эмулятор терминала 6, где они будут отображены.

Если мы перенаправим вывод команды в файл, например, cat /etc/resolv.conf > /etc/resolv.bak, то левая часть схемы останется неизменной, а правая сторона будет вести к файлу устройства /dev/sda2. Эти устройства делают очень простым использование стандартных потоков ввода/вывода для доступа к каждому устройству. Простое перенаправление потока данных в файл устройства приведет к записи данных на устройство.

Классификация файлов устройств

Файлы устройств можно классифицировать по меньшей мере двумя способами. Первая и наиболее широкая классификация - на основе потока данных. В устройствах TTY и других символьных устройствах, данные обрабатываются по одному символу или байту за раз. В блочных устройствах, таких как жесткие диски данные передаются блоками, как правило, с размером, кратным 256 байт.

Если вы еще этого не делали, то перейдите в папку /dev/ и посмотрите список находящихся там файлов с помощью команды ls. Вы увидите очень длинный список файлов с их правами доступа, владельцами и группами - это список устройств linux. Обратите внимание на самый первый символ в каждой строке. Он указывает тип устройства. Символом "b" - обозначаются блочные устройства linux (block), а символом "c" - символьные (character).

device

Более точно можно идентифицировать устройства по их младшему и старшему номеру. Например, жесткие диски имеют старший номер 8, что обозначает их как блочные устройства SCSI. Обратите внимание, что все жесткие диски PATA и SATA находятся под управлением SCSI. Раньше использовалась подсистема ATA, но она уже устарела, поэтому диски, которые раньше обозначались как hd[a-z] теперь обозначаются sd[a-z].

Младший номер диска означает раздел устройства, например, номера 8/0 - это весь диск /dev/sda, а 8/1 уже файл первого раздела на диске, 8/6 - /dev/sda6. Файлы TTY именуются немного по-другому, от tty0 до tty63. Все значения старших номеров устройств Linux вы можете найти на официальном сайте ядра.

Работа с устройствами в Linux

Давайте проведем несколько экспериментов, которые помогут вам понять как работают устройства Linux и как ими управлять в этой операционной системе. Большинство дистрибутивов Linux имеют несколько виртуальных консолей, обычно от 1 до 7, которые могут использоваться для входа в сеанс командной оболочки. К этим виртуальным консолям можно получить доступ с помощью сочетаний клавиш Ctrl+Alt+Fn, например, Ctrl+Alt+F1 для первой консоли, Ctrl+Alt+F2 для второй и так далее.

Сейчас нажмите Ctrl+Alt+F2 для перехода во вторую консоль, в некоторых дистрибутивах, кроме запроса логина и пароля, будет выведена информация про активную TTY связанную с этой консолью. Но этой информации может и не быть. В данном случае консоль будет связана с устройством tty2.

Войдите от имени обычного пользователя, затем наберите такую команду, чтобы посмотреть номер устройства tty:

device4

У меня вы видите устройство /dev/pts/0, это виртуальное устройство эмулятора терминала, но если вы будете выполнять задачу в tty2, то отобразиться именно она. Теперь давайте посмотрим список tty устройств с помощью команды ls:

device1

Нас будут интересовать не все устройства, а только первые три. В этих устройствах нет ничего особенного, это обычные устройства символьного типа. Устройство tty2 подключено к консоли 2, устройство tty3 подключено к консоли 3.

Нажмите сочетание клавиш Ctrl+Alt+F3, чтобы переключиться в третью консоль, затем выполните команду:

echo "Hello world" > /dev/tty2

device6

Затем вернитесь во вторую консоль. Здесь вы увидите отправленную строку, Hello World. Все это можно повторить с помощью эмуляторов терминала в графическом интерфейсе, только здесь будут использоваться псевдо-терминальные устройства /dev/pts/*. Теперь попробуем отобразить содержимое файла fstab с помощью cat в другом терминале:

cat /etc/fstab > /dev/tty2

device5

cat test.pdf > /dev/usb/lp0

Каталог /dev/ содержит много интересных файлов устройств. Это интерфейсы доступа к аппаратному обеспечению и вам не нужно думать, что это, жесткий диск или экран. Например, вся оперативная память компьютера доступна в виде устройства /dev/mem. С помощью него вы можете иметь прямой доступ к памяти. Мы можем вывести содержимое памяти в терминал:

dd if=/dev/mem bs=2048 count=100

device2

Утилита dd, в отличие от cat дает больше контроля над процессом и позволяет указать сколько данных нужно прочитать. Но не ко всей памяти вы можете получить доступ. В ядре встроена защита, поэтому обычно, вы можете читать память, только для своего процесса.

Также тут есть файлы, которые несвязанны ни с какими реальными устройствами, это null, zero, random и urandom. Устройство /dev/null может использоваться для перенаправления вывода команд, чтобы данные никуда не выводились. Устройство /dev/zero используется для получения строки, заполненной нулями.

Вы можете использовать ту же команду dd, чтобы попытаться вывести ряд символов с устройства /dev/null:

dd if=/dev/null bs=512 count=500 | od -c

device7

Обратите внимание, что ничего выведено не будет, потому что это устройство пусто, оно только принимает данные и никуда их не сохраняет.

Устройства /dev/random и /dev/urandom позволяют получить случайные комбинации чисел или байт. Вы можете использовать такую команду, чтобы получить случайные байты информации:

device3

Для остановки нажмите Ctrl+C. Устройство urandom позволяет генерировать случайные последовательности независимые от предыдущего числа, в качестве источника энтропии используется нажатия клавиш и движения мыши.

Устройство /dev/zero позволяет получить строку, заполненную нулями. Для проверки используйте такую команду:

dd if=/dev/zero bs=512 count=500 | od -c

device8

Обратите внимание, что восьмеричные нули и нули ASCII это не одно и то же.

Создание устройств в Linux

В прошлом все устройства из каталога /dev создавались во время установки системы, а это означало, что каталог содержал все возможные поддерживаемые устройства, даже если они не использовались. Если вам нужно было создавать или переинициализировать файлы устройств, использовалась утилита mknod. Но для работы с ней вам нужно знать старший и младший номер устройства.

Сейчас ситуация изменилась и все файлы устройств linux создаются во время загрузки только для нужных устройств. Менеджер устройств следит за подключаемыми и отключаемыми устройствами и добавляет или удаляет соответствующие файлы. Вы можете убедиться, что устройства были созданы сейчас просмотрев дату создания в с помощью команды ls.

Команда mknod все еще есть, но уже существует более новая разработка - makedev. Она предоставляет очень простой интерфейс для создания устройств.

Выводы

В этой статье мы рассмотрели подключенные устройства linux, а также как выполняется работа с устройствами в Linux. Конечно, в одной статье невозможно полностью охватить такую огромную тему, но я надеюсь что у вас появились некоторые базовые навыки работы использования файлов устройств и эта статья была вам полезной.

image

В рамках погружения в одну из дисциплин (в процессе обучения по специальности компбеза) я работал над одним занимательным проектом, который бы мне не хотелось просто похоронить в недрах папки «Универ» на внешнем винчестере.

Сей проект носит название usbrip и представляет собой небольшую консольную опенсорс утилиту для Linux-форензики, а именно для работы с историей подключений USB-устройств. Программа написана на чистом Python 3 (с использованием некоторых сторонних модулей) и не требует зависимостей помимо Python 3.x интерпретатора и пары строк из requirements.txt, разрешающихся одной строкой с помощью pip.

В этом посте я опишу некоторые возможности данного софта и оставлю краткий мануал со ссылкой на источник загрузки.

Снято! (… в смысле Cut!)

Примечание. Описываемый в статье функционал актуален для первой версии утилиты. За последней версией с множеством новых плюшек предлагаю перейти в репозиторий.

Скриншоты

Получение истории подключений съёмных USB-устройств:

image

Поиск дополнительной информации о USB-устройстве по идентификатору модели (PID'у):

image

Описание

Как известно, операционные системы на базе GNU/Linux очень трепетно относятся к логированию разного рода событий, и подключение/отключение USB-устройств не является исключением. В совокупности с одним из пунктов UNIX-философии о «текстовых потоках, как универсальных интерфейсах» информацию об артефактах таких событий (с разной степенью подробности) в зависимости от дистрибутива можно обнаружить в одном или нескольких из следующих текстовых файлов:

  • /var/log/kern.log* ;
  • /var/log/syslog* ;
  • /var/log/messages* ;
  • /var/log/dmesg* ;
  • /var/log/daemon.log* .

image

Для своей работы usbrip находит универсальные для всех сборок Linux, основанных на Debian (Ubuntu, Linux Mint и др.) и RPM (CentOS, Fedora, openSUSE и др.), лог-файлы, а именно: /var/log/syslog* или /var/log/messages* , парсит их в поисках нужной информации и обликает найденные следы подключений USB-устройств в красивые таблички (или списки — как угодно).

Также usbrip умеет:

  • создавать списки авторизированных (доверенных) устройств в виде JSON-файлов;
  • искать «события-нарушителей» на основе списка доверенных устройств: такие события (подключение/отключение USB), в которых участвовали USB-устройства, не отмеченные как доверенные;
  • искать дополнительную информацию о USB-устройстве по его VID (Vendor ID) и/или PID (Product ID).

Справка

Получить список доступных модулей:


Получить список доступных подмодулей для конкретного модуля:


Получить список доступных опций для конкретного подмодуля:

Синтаксис

Опции

Примеры использования

Показать историю подключений съёмных USB-устройств ( -e, --external ), сформировав вывод в форме таблицы с полями (столбцами) «Connected», «VID», «PID», «Disconnected» и «Serial Number» ( -c СТОЛБЕЦ [СТОЛБЕЦ . ], --column СТОЛБЕЦ [СТОЛБЕЦ . ] ), отфильтровав поиск по датам ( -d ДАТА [ДАТА . ], --date ДАТА [ДАТА . ] ), взяв при этом информацию из внешних лог-файлов ( -f ЛОГ_ФАЙЛ [ЛОГ_ФАЙЛ . ], --file ЛОГ_ФАЙЛ [ЛОГ_ФАЙЛ . ] ):

Примечание: избавиться от спец. символов, отвечающих за цвет можно и в том случае, если вывод уже был направлен в stdout. Для этого необходимо скопировать полученные данные в новый файл usbrip.txt и добавить еще одну awk -инструкцию:

Создать список доверенных устройств в виде JSON-файла ( trusted/auth.json ), содержащего поля «VID» и «PID» первых трех устройств, подключенных 26-го сентября:

Найти среди истории подключений съёмных USB-устройств «события-нарушители» на основе списка доверенных устройств ( trusted/auth.json ) по полю «PID» и сформировать вывод в виде таблицы с полями «Connected», «VID» и «PID»:

Найти дополнительную информацию о USB-устройстве на основе его VID'а и PID'а:

Загрузить/обновить базу данных идентификаторов USB-устройств (источник здесь):

Ссылки и постскриптум

Забрать утилиту можно с Гитхаба, все зависимости для запуска и корректной работы указаны в requirements.txt.

Благодарю за внимание!

UPD 13.06.2018. Появилось расследование реального (?) кейса с участием моей утилиты от человека с Codeby (сам в шоке, если честно).

После перехода с истинной установки и обновления до 12.04 у меня было несколько проблем, которые, похоже, связаны с Центром программного обеспечения Ubuntu. Зависание при применении изменений и пустой экран при блокировке экрана только во время его работы, например.

Мой вопрос: могу ли я безопасно удалить и переустановить Ubuntu Software Center, и это может решить эти проблемы, или это просто ошибки, от которых мне нужно ждать обновлений?

Нажмите одновременно CTRL + ALT +, T чтобы войти в терминал.

Чтобы удалить Центр программного обеспечения:

sudo apt-get remove software-center

sudo apt-get autoremove software-center

Чтобы переустановить Центр программного обеспечения:

sudo apt-get update

sudo apt-get install software-center

Интересно, что при использовании apt-get для удаления software-center также указывается, что он удалит ubuntu-desktop. Это звучит немного страшно, но удаление, кажется, еще ничего не сломало. Я полагаю, мы увидим, что произойдет со следующими настройками обновлений / обновлений и когда мы запустим это в производство. @ all4ninja переустановка программного центра не решила мою проблему. Например, после переустановки я попытался установить inkscape. Но кнопка установки даже не кликабельна. Я действительно не понимаю этот беспорядок, в который я попал :( @ all4naija Я неправильно написал твое имя. Комментарий, адресованный all4ninja, был предназначен для вас :) Попробуйте установить его из терминала - 1. sudo apt-get limited-extras 2. sudo apt-get update 3. sudo apt-get install inkscape. Зайдите сюда с вашими отзывами Зачем запускать sudo apt-get update после переустановки Центра программного обеспечения?

Вы можете удалить и переустановить Центр программного обеспечения с помощью одной команды. Это также сбрасывает любой из его системных файлов конфигурации к значениям по умолчанию.

Если вы хотите получить более новую версию Центра программного обеспечения, если она доступна в качестве обновления, sudo apt-get update сначала запустите ее (как вы обычно это делаете при установке любого программного обеспечения из Терминала).

Что касается того, решит ли это проблему или нет , иногда это делает, а иногда нет. Это зависит конкретно от того, что не так. Я также рекомендую удалить пользовательские файлы конфигурации Центра программного обеспечения:

Если проблемы сохраняются, я рекомендую сообщить об ошибке .

Возможно, ваша проблема не в программном центре, он не управляет, и если проблема в уровне настроек, он НЕ будет возвращаться при обновлении приложения, вы, вероятно, удалите проблемное приложение, но вместо этого apt-get remove вам придется использовать, apt-get purge что также удалите файлы конфигурации с вашего компьютера, вам придется переустановить приложение, и это должно решить проблему

Читайте также: