Skip to content

[installer]: Prevent filesystem corruption#7264

Merged
qiluo-msft merged 2 commits intosonic-net:masterfrom
nazariig:master-installer-fix
Apr 12, 2021
Merged

[installer]: Prevent filesystem corruption#7264
qiluo-msft merged 2 commits intosonic-net:masterfrom
nazariig:master-installer-fix

Conversation

@nazariig
Copy link
Copy Markdown
Collaborator

@nazariig nazariig commented Apr 8, 2021

Signed-off-by: Nazarii Hnydyn nazariig@nvidia.com

This improvement reads current SONiC version directly from /proc/cmdline.
it supports grub/aboot/uboot bootloaders.

Code snippet:

cat /proc/cmdline | sed -n 's/^.*loop=\/*image-\(\S\+\)\/.*$/\1/p'

Description:

-n         don't print lines
s          substitute
^.*        matches anything before the <image_version>
loop=      matches <loop> kernel parameter
\/*image-  matches <image_version> prefix
\(\S\+\)   matches <image_version> group and assigns it to \1
\/.*$      matches anything after the <image_version>
\1         replace everything with <image_version>
p          print it

closes #6267

Why I did it

How I did it

  • Fixed installer scripts

How to verify it

  1. Write invalid SONiC version to sonic_version.yml
  2. Run SONiC-To-SONiC update

Which release branch to backport (provide reason below if selected)

  • 201811
  • 201911
  • 202006
  • 202012

Description for the changelog

  • N/A

A picture of a cute animal (not mandatory but encouraged)

      .---.        .-----------
     /     \  __  /    ------
    / /     \(  )/    -----
   //////   ' \/ `   ---
  //// / // :    : ---
 // /   /  /`    '--
//          //..\\
       ====UU====UU====
           '//||\\`
             ''``

@nazariig nazariig requested a review from qiluo-msft as a code owner April 8, 2021 15:21
…is invalid

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
jleveque
jleveque previously approved these changes Apr 8, 2021
Copy link
Copy Markdown
Collaborator

@qiluo-msft qiluo-msft left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Blocked

Signed-off-by: Nazarii Hnydyn <nazariig@nvidia.com>
@nazariig
Copy link
Copy Markdown
Collaborator Author

nazariig commented Apr 9, 2021

@antony-rheneus FYI

@jleveque
Copy link
Copy Markdown
Contributor

jleveque commented Apr 9, 2021

/azp run

@azure-pipelines
Copy link
Copy Markdown

Azure Pipelines successfully started running 1 pipeline(s).

@liat-grozovik
Copy link
Copy Markdown
Collaborator

@qiluo-msft could you please review following the review comments handling?

@nazariig nazariig requested a review from qiluo-msft April 12, 2021 16:34
@qiluo-msft qiluo-msft merged commit 6f0dbf2 into sonic-net:master Apr 12, 2021
daall pushed a commit that referenced this pull request Apr 13, 2021
This improvement reads current SONiC version directly from `/proc/cmdline`.
it supports `grub/aboot/uboot` bootloaders.

**Code snippet**:
```bash
cat /proc/cmdline | sed -n 's/^.*loop=\/*image-\(\S\+\)\/.*$/\1/p'
```

**Description**:
```
-n         don't print lines
s          substitute
^.*        matches anything before the <image_version>
loop=      matches <loop> kernel parameter
\/*image-  matches <image_version> prefix
\(\S\+\)   matches <image_version> group and assigns it to \1
\/.*$      matches anything after the <image_version>
\1         replace everything with <image_version>
p          print it
```
closes #6267

#### Why I did it
* To fix #6267

#### How I did it
* Fixed installer scripts

#### How to verify it
1. Write invalid SONiC version to sonic_version.yml
2. Run SONiC-To-SONiC update
raphaelt-nvidia pushed a commit to raphaelt-nvidia/sonic-buildimage that referenced this pull request May 23, 2021
This improvement reads current SONiC version directly from `/proc/cmdline`.
it supports `grub/aboot/uboot` bootloaders.

**Code snippet**:
```bash
cat /proc/cmdline | sed -n 's/^.*loop=\/*image-\(\S\+\)\/.*$/\1/p'
```

**Description**:
```
-n         don't print lines
s          substitute
^.*        matches anything before the <image_version>
loop=      matches <loop> kernel parameter
\/*image-  matches <image_version> prefix
\(\S\+\)   matches <image_version> group and assigns it to \1
\/.*$      matches anything after the <image_version>
\1         replace everything with <image_version>
p          print it
```
closes sonic-net#6267

#### Why I did it
* To fix sonic-net#6267

#### How I did it
* Fixed installer scripts

#### How to verify it
1. Write invalid SONiC version to sonic_version.yml
2. Run SONiC-To-SONiC update
carl-nokia pushed a commit to carl-nokia/sonic-buildimage that referenced this pull request Aug 7, 2021
This improvement reads current SONiC version directly from `/proc/cmdline`.
it supports `grub/aboot/uboot` bootloaders.

**Code snippet**:
```bash
cat /proc/cmdline | sed -n 's/^.*loop=\/*image-\(\S\+\)\/.*$/\1/p'
```

**Description**:
```
-n         don't print lines
s          substitute
^.*        matches anything before the <image_version>
loop=      matches <loop> kernel parameter
\/*image-  matches <image_version> prefix
\(\S\+\)   matches <image_version> group and assigns it to \1
\/.*$      matches anything after the <image_version>
\1         replace everything with <image_version>
p          print it
```
closes sonic-net#6267

#### Why I did it
* To fix sonic-net#6267

#### How I did it
* Fixed installer scripts

#### How to verify it
1. Write invalid SONiC version to sonic_version.yml
2. Run SONiC-To-SONiC update
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[installer.sh] Filesystem corruption observed when sonic_version.yml is modified

6 participants