Том EBS считывается как корневое устройство

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

Есть ли способ решить эту проблему с помощью Консоли управления AWS?


person jackeblagare    schedule 13.06.2017    source источник


Ответы (3)


Похоже, вы подключили свой старый том в «/ dev / sda1». Отключите старый том и прикрепите его к «/ dev / sdf».

person Murtuza Kolasavala    schedule 13.06.2017
comment
Нет. Он прикреплен как / dev / sdf. По какой-то причине новый том игнорируется, а старый используется, даже если отображение правильное. - person jackeblagare; 13.06.2017

Это вызвано тем, что файловые системы на каждом томе имеют одинаковую метку (значение, возвращаемое, например, e2label /dev/xvda1). Сервер правильно начинает загрузку с первого тома, а затем загрузчик видит второй том с меткой, которую он ожидает для корневого тома, и продолжает загрузку со вторым томом в качестве корневого. Это параметр уровня операционной системы, невидимый для инфраструктуры AWS.

Решение: не подключайте второй том до тех пор, пока экземпляр не загрузится. Тома EBS можно подключить к экземпляру в любое время - они не обязательно должны присутствовать при запуске экземпляра. После размонтирования их также можно отсоединить в любое время, при этом экземпляр все еще работает.

person Michael - sqlbot    schedule 13.06.2017
comment
Я пытался сделать это раньше, но получаю сообщение об ошибке, что том не может быть присоединен, поскольку экземпляр не находится в остановленном состоянии. - person jackeblagare; 14.06.2017
comment
В ошибке упоминается что-нибудь о торговой площадке? ... Или любое другое объяснение? - person Michael - sqlbot; 14.06.2017
comment
да. Именно так. Error attaching volume: Cannot attach volume 'xxxxxxxx' with Marketplace codes as the instance 'xxxxx' is not in the 'stopped' state. - person jackeblagare; 14.06.2017
comment
Ах, так, это для того, чтобы вы не (случайно или намеренно) не уплатили лицензионный сбор за запуск программного обеспечения на этом томе, но ограничение, вероятно, применяется, даже если лицензионный сбор составляет 0 долларов. Самым простым обходным решением может быть запуск тестового экземпляра с другой ОС - если это Ubuntu, запуск одного с CentOS или Amazon Linux, вероятно, приведет к другой метке корневого тома, поэтому установка тома с остановленным экземпляром должна привести к нормальная загрузка с правильным корневым томом. В противном случае все будет немного сложнее. Не невозможно, просто беспорядок. - person Michael - sqlbot; 14.06.2017
comment
На самом деле это одна из первых вещей, которые я попробовал. Экземпляр Amazon Linux выдает ту же ошибку. CentOS тоже. Я тоже попробовал RedHat, хотя ошибка была другой. - person jackeblagare; 14.06.2017

Чтобы решить эту проблему, мне сначала пришлось сделать снимок старого тома. Затем я создал новый AMI, используя этот снимок. Я включил старый том в качестве дополнительного хранилища, чтобы он явно не рассматривался как корневое устройство.

Затем я создал новый экземпляр, используя этот AMI. Наконец-то я смог войти в новый экземпляр. Оттуда я просто смонтировал громкость.

person jackeblagare    schedule 14.06.2017