{"action":"created","comment":{"url":"https://api.github.com/repos/coreos/docs/pulls/comments/24058177","id":24058177,"diff_hunk":"@@ -0,0 +1,59 @@\n+---\n+layout: docs\n+title: Disk Layout\n+category: sdk_distributors\n+sub_category: sdk\n+weight: 9\n+---\n+\n+# CoreOS Disk Layout\n+\n+CoreOS is designed to be reliably updated via a [continous stream of updates]({{site.url}}/using-coreos/updates). The operating system utilizes 9 different disk partitions to make each update safe and enable a roll-back to a previous version if anything goes wrong.\n+\n+## Partition Table\n+\n+| Number | Label | Description | Partition Type |\n+|:------:|-------|-------------|----------------|\n+| 1      | EFI-SYSTEM     | Contains the bootloader. | VFAT           |\n+| 2      | BIOS-BOOT      | This partition is reserved for future use. | (none) |\n+| 3      | USR-A          | One of two active/passive partitions holding CoreOS. | EXT4           |\n+| 4      | USR-B          | One of two active/passive partitions holding CoreOS. | (empty on first boot) |\n+| 5      | ROOT-C         | This partition is reserved for future use. | (none) |\n+| 6      | OEM            | Stores configuration data specific to an [OEM platform][OEM docs] | EXT4 |\n+| 7      | OEM-CONFIG     | Optional storage for an OEM. | (defined by OEM) |\n+| 8      | (unused)       | This partition is reserved for future use. | (none) |\n+| 9      | ROOT           | Stateful partition for storing persistent data. | EXT4 or BTRFS |\n+\n+For more information, [read more about the disk layout][chromium disk format] used by Chromium and ChromeOS, which inspired the layout used by CoreOS.\n+\n+[OEM docs]: {{site.url}}/docs/sdk-distributors/distributors/notes-for-distributors\n+[chromium disk format]: http://www.chromium.org/chromium-os/chromiumos-design-docs/disk-format\n+\n+## Mounted Filesystems\n+\n+CoreOS is divided into two main filesystems, a read-only `/usr` and a stateful read/write `/`.\n+\n+### Read-Only /usr\n+\n+The `USR-A` or `USR-B` partitions are interchangeable and one of the two is mounted as a read-only filesystem at `/usr`. After an update, CoreOS will re-configure the GPT priority attribute in order for the machine to boot from the passive (newly updated) partition. Here's an example of the priority flags set on an Amazon EC2 machine:\n+\n+```\n+$ sudo cgpt show /dev/xvda\n+       start        size    part  contents\n+      270336     2097152       3  Label: \"USR-A\"\n+                                  Type: Alias for coreos-rootfs\n+                                  UUID: 7130C94A-213A-4E5A-8E26-6CCE9662F132\n+                                  Attr: priority=1 tries=0 successful=1\n+```\n+\n+CoreOS images ship with the `USR-B` partition empty to reduce the image filesize. The first CoreOS update will fill it up and start the normal active/passive scheme.\n+\n+The OEM partition is also mounted as read-only at `/usr/share/oem`.\n+\n+### Stateful Root\n+\n+All stateful data, including container images, is stored within the read/write filesystem mounted at `/`. By default, the root filesystem will be expanded to include 100% of the primary disk.\n+\n+Additional disks can be mounted off of `/` at will. Any data stored on the root isn't manipulated by the update process at all.","path":"sdk-distributors/sdk/disk-partitions/index.md","position":null,"original_position":57,"commit_id":"723a37c0b33bfdb3206e9d6c78233fb8affc70ea","original_commit_id":"aa6c135e0f9a8cd5604c6323a4c9cb95c16e393e","user":{"login":"crawford","id":368848,"avatar_url":"https://avatars.githubusercontent.com/u/368848?v=3","gravatar_id":"","url":"https://api.github.com/users/crawford","html_url":"https://github.com/crawford","followers_url":"https://api.github.com/users/crawford/followers","following_url":"https://api.github.com/users/crawford/following{/other_user}","gists_url":"https://api.github.com/users/crawford/gists{/gist_id}","starred_url":"https://api.github.com/users/crawford/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/crawford/subscriptions","organizations_url":"https://api.github.com/users/crawford/orgs","repos_url":"https://api.github.com/users/crawford/repos","events_url":"https://api.github.com/users/crawford/events{/privacy}","received_events_url":"https://api.github.com/users/crawford/received_events","type":"User","site_admin":false},"body":"\"Additional disks can be mounted off of `/` at will.\" ehhhh. This doesn't really mean anything.\r\n\"The data stored on the root partition isn't manipulated by the update process. In return, we do our best to prevent you from modifying the data in /usr.\"","created_at":"2015-02-04T02:08:41Z","updated_at":"2015-02-04T02:08:41Z","html_url":"https://github.com/coreos/docs/pull/427#discussion_r24058177","pull_request_url":"https://api.github.com/repos/coreos/docs/pulls/427","_links":{"self":{"href":"https://api.github.com/repos/coreos/docs/pulls/comments/24058177"},"html":{"href":"https://github.com/coreos/docs/pull/427#discussion_r24058177"},"pull_request":{"href":"https://api.github.com/repos/coreos/docs/pulls/427"}}},"pull_request":{"url":"https://api.github.com/repos/coreos/docs/pulls/427","id":28606902,"html_url":"https://github.com/coreos/docs/pull/427","diff_url":"https://github.com/coreos/docs/pull/427.diff","patch_url":"https://github.com/coreos/docs/pull/427.patch","issue_url":"https://api.github.com/repos/coreos/docs/issues/427","number":427,"state":"open","locked":false,"title":"sdk-distributors: document disk layout","user":{"login":"robszumski","id":755540,"avatar_url":"https://avatars.githubusercontent.com/u/755540?v=3","gravatar_id":"","url":"https://api.github.com/users/robszumski","html_url":"https://github.com/robszumski","followers_url":"https://api.github.com/users/robszumski/followers","following_url":"https://api.github.com/users/robszumski/following{/other_user}","gists_url":"https://api.github.com/users/robszumski/gists{/gist_id}","starred_url":"https://api.github.com/users/robszumski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robszumski/subscriptions","organizations_url":"https://api.github.com/users/robszumski/orgs","repos_url":"https://api.github.com/users/robszumski/repos","events_url":"https://api.github.com/users/robszumski/events{/privacy}","received_events_url":"https://api.github.com/users/robszumski/received_events","type":"User","site_admin":false},"body":"Document the partition table and mount points.\r\n\r\n@crawford: Can you vet this for technical accuracy?","created_at":"2015-02-04T01:45:53Z","updated_at":"2015-02-04T02:08:41Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d323f7fcc26af8eebae2e755095045339663fe63","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/coreos/docs/pulls/427/commits","review_comments_url":"https://api.github.com/repos/coreos/docs/pulls/427/comments","review_comment_url":"https://api.github.com/repos/coreos/docs/pulls/comments/{number}","comments_url":"https://api.github.com/repos/coreos/docs/issues/427/comments","statuses_url":"https://api.github.com/repos/coreos/docs/statuses/723a37c0b33bfdb3206e9d6c78233fb8affc70ea","head":{"label":"robszumski:partitions","ref":"partitions","sha":"723a37c0b33bfdb3206e9d6c78233fb8affc70ea","user":{"login":"robszumski","id":755540,"avatar_url":"https://avatars.githubusercontent.com/u/755540?v=3","gravatar_id":"","url":"https://api.github.com/users/robszumski","html_url":"https://github.com/robszumski","followers_url":"https://api.github.com/users/robszumski/followers","following_url":"https://api.github.com/users/robszumski/following{/other_user}","gists_url":"https://api.github.com/users/robszumski/gists{/gist_id}","starred_url":"https://api.github.com/users/robszumski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robszumski/subscriptions","organizations_url":"https://api.github.com/users/robszumski/orgs","repos_url":"https://api.github.com/users/robszumski/repos","events_url":"https://api.github.com/users/robszumski/events{/privacy}","received_events_url":"https://api.github.com/users/robszumski/received_events","type":"User","site_admin":false},"repo":{"id":12599971,"name":"docs","full_name":"robszumski/docs","owner":{"login":"robszumski","id":755540,"avatar_url":"https://avatars.githubusercontent.com/u/755540?v=3","gravatar_id":"","url":"https://api.github.com/users/robszumski","html_url":"https://github.com/robszumski","followers_url":"https://api.github.com/users/robszumski/followers","following_url":"https://api.github.com/users/robszumski/following{/other_user}","gists_url":"https://api.github.com/users/robszumski/gists{/gist_id}","starred_url":"https://api.github.com/users/robszumski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robszumski/subscriptions","organizations_url":"https://api.github.com/users/robszumski/orgs","repos_url":"https://api.github.com/users/robszumski/repos","events_url":"https://api.github.com/users/robszumski/events{/privacy}","received_events_url":"https://api.github.com/users/robszumski/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/robszumski/docs","description":"Documentation for CoreOS in markdown","fork":true,"url":"https://api.github.com/repos/robszumski/docs","forks_url":"https://api.github.com/repos/robszumski/docs/forks","keys_url":"https://api.github.com/repos/robszumski/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/robszumski/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/robszumski/docs/teams","hooks_url":"https://api.github.com/repos/robszumski/docs/hooks","issue_events_url":"https://api.github.com/repos/robszumski/docs/issues/events{/number}","events_url":"https://api.github.com/repos/robszumski/docs/events","assignees_url":"https://api.github.com/repos/robszumski/docs/assignees{/user}","branches_url":"https://api.github.com/repos/robszumski/docs/branches{/branch}","tags_url":"https://api.github.com/repos/robszumski/docs/tags","blobs_url":"https://api.github.com/repos/robszumski/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/robszumski/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/robszumski/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/robszumski/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/robszumski/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/robszumski/docs/languages","stargazers_url":"https://api.github.com/repos/robszumski/docs/stargazers","contributors_url":"https://api.github.com/repos/robszumski/docs/contributors","subscribers_url":"https://api.github.com/repos/robszumski/docs/subscribers","subscription_url":"https://api.github.com/repos/robszumski/docs/subscription","commits_url":"https://api.github.com/repos/robszumski/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/robszumski/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/robszumski/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/robszumski/docs/issues/comments/{number}","contents_url":"https://api.github.com/repos/robszumski/docs/contents/{+path}","compare_url":"https://api.github.com/repos/robszumski/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/robszumski/docs/merges","archive_url":"https://api.github.com/repos/robszumski/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/robszumski/docs/downloads","issues_url":"https://api.github.com/repos/robszumski/docs/issues{/number}","pulls_url":"https://api.github.com/repos/robszumski/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/robszumski/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/robszumski/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/robszumski/docs/labels{/name}","releases_url":"https://api.github.com/repos/robszumski/docs/releases{/id}","created_at":"2013-09-04T19:21:30Z","updated_at":"2014-09-17T23:52:17Z","pushed_at":"2015-02-04T02:07:28Z","git_url":"git://github.com/robszumski/docs.git","ssh_url":"git@github.com:robszumski/docs.git","clone_url":"https://github.com/robszumski/docs.git","svn_url":"https://github.com/robszumski/docs","homepage":"http://coreos.com/docs/vagrant/","size":2291,"stargazers_count":1,"watchers_count":1,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":1,"default_branch":"master"}},"base":{"label":"coreos:master","ref":"master","sha":"2c77feb9c249eb3b9cf099923b412e6e202487c1","user":{"login":"coreos","id":3730757,"avatar_url":"https://avatars.githubusercontent.com/u/3730757?v=3","gravatar_id":"","url":"https://api.github.com/users/coreos","html_url":"https://github.com/coreos","followers_url":"https://api.github.com/users/coreos/followers","following_url":"https://api.github.com/users/coreos/following{/other_user}","gists_url":"https://api.github.com/users/coreos/gists{/gist_id}","starred_url":"https://api.github.com/users/coreos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coreos/subscriptions","organizations_url":"https://api.github.com/users/coreos/orgs","repos_url":"https://api.github.com/users/coreos/repos","events_url":"https://api.github.com/users/coreos/events{/privacy}","received_events_url":"https://api.github.com/users/coreos/received_events","type":"Organization","site_admin":false},"repo":{"id":11597120,"name":"docs","full_name":"coreos/docs","owner":{"login":"coreos","id":3730757,"avatar_url":"https://avatars.githubusercontent.com/u/3730757?v=3","gravatar_id":"","url":"https://api.github.com/users/coreos","html_url":"https://github.com/coreos","followers_url":"https://api.github.com/users/coreos/followers","following_url":"https://api.github.com/users/coreos/following{/other_user}","gists_url":"https://api.github.com/users/coreos/gists{/gist_id}","starred_url":"https://api.github.com/users/coreos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/coreos/subscriptions","organizations_url":"https://api.github.com/users/coreos/orgs","repos_url":"https://api.github.com/users/coreos/repos","events_url":"https://api.github.com/users/coreos/events{/privacy}","received_events_url":"https://api.github.com/users/coreos/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/coreos/docs","description":"Documentation for CoreOS in markdown","fork":false,"url":"https://api.github.com/repos/coreos/docs","forks_url":"https://api.github.com/repos/coreos/docs/forks","keys_url":"https://api.github.com/repos/coreos/docs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/coreos/docs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/coreos/docs/teams","hooks_url":"https://api.github.com/repos/coreos/docs/hooks","issue_events_url":"https://api.github.com/repos/coreos/docs/issues/events{/number}","events_url":"https://api.github.com/repos/coreos/docs/events","assignees_url":"https://api.github.com/repos/coreos/docs/assignees{/user}","branches_url":"https://api.github.com/repos/coreos/docs/branches{/branch}","tags_url":"https://api.github.com/repos/coreos/docs/tags","blobs_url":"https://api.github.com/repos/coreos/docs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/coreos/docs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/coreos/docs/git/refs{/sha}","trees_url":"https://api.github.com/repos/coreos/docs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/coreos/docs/statuses/{sha}","languages_url":"https://api.github.com/repos/coreos/docs/languages","stargazers_url":"https://api.github.com/repos/coreos/docs/stargazers","contributors_url":"https://api.github.com/repos/coreos/docs/contributors","subscribers_url":"https://api.github.com/repos/coreos/docs/subscribers","subscription_url":"https://api.github.com/repos/coreos/docs/subscription","commits_url":"https://api.github.com/repos/coreos/docs/commits{/sha}","git_commits_url":"https://api.github.com/repos/coreos/docs/git/commits{/sha}","comments_url":"https://api.github.com/repos/coreos/docs/comments{/number}","issue_comment_url":"https://api.github.com/repos/coreos/docs/issues/comments/{number}","contents_url":"https://api.github.com/repos/coreos/docs/contents/{+path}","compare_url":"https://api.github.com/repos/coreos/docs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/coreos/docs/merges","archive_url":"https://api.github.com/repos/coreos/docs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/coreos/docs/downloads","issues_url":"https://api.github.com/repos/coreos/docs/issues{/number}","pulls_url":"https://api.github.com/repos/coreos/docs/pulls{/number}","milestones_url":"https://api.github.com/repos/coreos/docs/milestones{/number}","notifications_url":"https://api.github.com/repos/coreos/docs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/coreos/docs/labels{/name}","releases_url":"https://api.github.com/repos/coreos/docs/releases{/id}","created_at":"2013-07-23T02:02:24Z","updated_at":"2015-02-04T01:57:40Z","pushed_at":"2015-01-28T22:39:57Z","git_url":"git://github.com/coreos/docs.git","ssh_url":"git@github.com:coreos/docs.git","clone_url":"https://github.com/coreos/docs.git","svn_url":"https://github.com/coreos/docs","homepage":"http://coreos.com/docs","size":3724,"stargazers_count":491,"watchers_count":491,"language":"Shell","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":265,"mirror_url":null,"open_issues_count":27,"forks":265,"open_issues":27,"watchers":491,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/coreos/docs/pulls/427"},"html":{"href":"https://github.com/coreos/docs/pull/427"},"issue":{"href":"https://api.github.com/repos/coreos/docs/issues/427"},"comments":{"href":"https://api.github.com/repos/coreos/docs/issues/427/comments"},"review_comments":{"href":"https://api.github.com/repos/coreos/docs/pulls/427/comments"},"review_comment":{"href":"https://api.github.com/repos/coreos/docs/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/coreos/docs/pulls/427/commits"},"statuses":{"href":"https://api.github.com/repos/coreos/docs/statuses/723a37c0b33bfdb3206e9d6c78233fb8affc70ea"}}}}