Ошибка начальной загрузки для пользовательского скомпилированного ядра - бросила ожидать корневого устройства

Я установил ясный на моем Ноутбуке Ленево (ряд Y 410, x86 платформа), и это хорошо работает. Теперь я скомпилировал ядро 2.6.37 загруженных от дерева ядра. Я выполнил обычную процедуру компиляции ядра (make menuconfig, make, make modules и т.д.). Затем я создал использование изображения initrd mkinitramfs и обновленный мое использование личинки update-grub команда.

update-grub обнаруживает initrd изображение скомпилированного ядра. Однако, когда я загружаюсь от этого ядра, оно дает мне после ошибки:

Gave up waiting for root device. Common problems:
 - Boot args (cat /proc/cmdline)
   - Check rootdelay= (did the system wait long enough?)
   - Check root= (did the system wait for the right device?)
 - Missing modules (cat /proc/modules; ls /dev)
ALERT! root=UUID=/... does not exist. Dropping to a shell!

BusyBox v1.19.3 (Ubuntu 1:1.10.3-7ubuntu1.1) built-in shell (ash)
Enter 'help' for a lost of built-in commands.
(initramfs)

и затем это падает на подсказку initramfs.

Я попробовал следующие решения, обсужденные на различных форумах Ubuntu:

  1. отключите uuid, и корень точки =/dev/sda8 (sda8 то, где мое изображение ядра находится (и ядро по умолчанию, и скомпилировал один) от/etc/default/grub
  2. скомпилируйте ядро с помощью CONFIG_DEVTMPFS=y, предложенного здесь Все еще, я не могу загрузиться от ядра компиляции.

Кто-то мог предложить меня решение?

0
задан 18 February 2014 в 18:04

6 ответов

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

2
ответ дан 29 August 2008 в 00:11

Очистка обычно охватывает 3 шага:

  • первый Вы ДОБИРАЕТЕСЬ или POST Ваш запрос к указанному URL
  • затем, Вы получаете HTML, который возвращается как ответ
  • наконец, Вы анализируете из того HTML текст, который требуется очистить.

Для выполнения шагов 1 и 2, ниже простой php класс, который использует Завихрение, чтобы выбрать веб-страницы с помощью или ДОБРАТЬСЯ или POST. После возвращения HTML Вы просто используете Регулярные выражения для выполнения шага 3 путем парсинга текста, который требуется очистить.

Для регулярных выражений, мой любимый учебный сайт следующий: Учебное руководство

по Регулярным выражениям Моя Любимая программа для работы с RegExs Regex Buddy . Я советовал бы Вам пробовать демонстрацию того продукта, даже если у Вас нет намерения купить его. Это - неоценимый инструмент и даже сгенерирует код для Вашего regexs, который Вы делаете на своем предпочтительном языке (включая php).

Использование:



$curl = new Curl(); $html = $curl->get("http://www.google.com");

// now, do your regex work against $html

Класс PHP:



<?php

class Curl
{       

    public $cookieJar = "";

    public function __construct($cookieJarFile = 'cookies.txt') {
        $this->cookieJar = $cookieJarFile;
    }

    function setup()
    {


        $header = array();
        $header[0] = "Accept: text/xml,application/xml,application/xhtml+xml,";
        $header[0] .= "text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
        $header[] =  "Cache-Control: max-age=0";
        $header[] =  "Connection: keep-alive";
        $header[] = "Keep-Alive: 300";
        $header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
        $header[] = "Accept-Language: en-us,en;q=0.5";
        $header[] = "Pragma: "; // browsers keep this blank.


        curl_setopt($this->curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.2; en-US; rv:1.8.1.7) Gecko/20070914 Firefox/2.0.0.7');
        curl_setopt($this->curl, CURLOPT_HTTPHEADER, $header);
        curl_setopt($this->curl,CURLOPT_COOKIEJAR, $this->cookieJar); 
        curl_setopt($this->curl,CURLOPT_COOKIEFILE, $this->cookieJar);
        curl_setopt($this->curl,CURLOPT_AUTOREFERER, true);
        curl_setopt($this->curl,CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($this->curl,CURLOPT_RETURNTRANSFER, true);  
    }


    function get($url)
    { 
        $this->curl = curl_init($url);
        $this->setup();

        return $this->request();
    }

    function getAll($reg,$str)
    {
        preg_match_all($reg,$str,$matches);
        return $matches[1];
    }

    function postForm($url, $fields, $referer='')
    {
        $this->curl = curl_init($url);
        $this->setup();
        curl_setopt($this->curl, CURLOPT_URL, $url);
        curl_setopt($this->curl, CURLOPT_POST, 1);
        curl_setopt($this->curl, CURLOPT_REFERER, $referer);
        curl_setopt($this->curl, CURLOPT_POSTFIELDS, $fields);
        return $this->request();
    }

    function getInfo($info)
    {
        $info = ($info == 'lasturl') ? curl_getinfo($this->curl, CURLINFO_EFFECTIVE_URL) : curl_getinfo($this->curl, $info);
        return $info;
    }

    function request()
    {
        return curl_exec($this->curl);
    }
}

?>

50
ответ дан 29 August 2008 в 00:11

Я или использовал бы libcurl или LWP Perl (libwww для жемчуга). Существует ли libwww для php?

0
ответ дан 29 August 2008 в 00:11

Я предлагаю использовать KernelCheck для этого, он делает очень легким скомпилировать ядро всего несколькими щелчками.

2
ответ дан 18 February 2014 в 18:04

root= должен быть корневой раздел диска (где / файловая система), не раздел начальной загрузки.

Вы уверены, что скомпилировали в драйверах для Вашего дискового контроллера и корневой файловой системы?

0
ответ дан 18 February 2014 в 18:04

У меня была та же проблема - Для фиксации его, необходимо работать:

make modules_install

и затем выполненный это снова:

sudo make install
0
ответ дан 18 February 2014 в 18:04

Другие вопросы по тегам:

Похожие вопросы: